import { Router, NavigationExtras } from '@angular/router';
import { OktaConfig } from '../models/okta.config';
import { UserClaims } from '../models/user-claims';
import { Observable } from 'rxjs/Observable';
export declare class OktaAuthService {
    private auth;
    private router;
    private oktaAuth;
    private config;
    private observers;
    $authenticationState: Observable<boolean>;
    constructor(auth: OktaConfig, router: Router);
    /**
     * Checks if there is an access token and id token
     */
    isAuthenticated(): Promise<boolean>;
    private emitAuthenticationState(state);
    /**
     * Returns the current accessToken in the tokenManager.
     */
    getAccessToken(): Promise<string | undefined>;
    /**
     * Returns the current idToken in the tokenManager.
     */
    getIdToken(): Promise<string | undefined>;
    /**
     * Returns user claims from the /userinfo endpoint if an
     * accessToken is provided or parses the available idToken.
     */
    getUser(): Promise<UserClaims | undefined>;
    /**
     * Returns the configuration object used.
     */
    getOktaConfig(): OktaConfig;
    /**
     * Launches the login redirect.
     * @param fromUri
     * @param additionalParams
     */
    loginRedirect(fromUri?: string, additionalParams?: object): void;
    /**
     * Stores the intended path to redirect after successful login.
     * @param uri
     * @param queryParams
     */
    setFromUri(uri: string, queryParams?: object): void;
    /**
     * Returns the referrer path from localStorage or app root.
     */
    getFromUri(): {
        uri: string;
        extras: NavigationExtras;
    };
    /**
     * Parses the tokens from the callback URL.
     */
    handleAuthentication(): Promise<void>;
    /**
     * Clears the user session in Okta and removes
     * tokens stored in the tokenManager.
     * @param uri
     */
    logout(uri?: string): Promise<void>;
    /**
     * Scrub scopes to ensure 'openid' is included
     * @param scopes
     */
    scrubScopes(scopes: string): string;
}
