/**
 * @packageDocumentation
 * @module authorization
 */
import { HttpClient } from '@angular/common/http';
import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { AccountInfo } from '../page-scaffold';
import * as i0 from "@angular/core";
export interface AuthorizationState {
    idToken?: string;
    refreshToken?: string;
    authUrl?: string;
    state?: string;
    logoutUrl?: string;
}
export declare class AuthorizationStateService implements OnDestroy {
    private readonly http;
    private readonly idTokenKey;
    private readonly refreshTokenKey;
    private readonly codeKey;
    private readonly apiTokenLogin;
    private readonly apiTokenCallback;
    private readonly apiRefreshToken;
    private readonly apiTokenInfo;
    private readonly destroy$$;
    private readonly refreshToken$$;
    private readonly state$;
    private checkTokenCache;
    private refreshTokenCache$;
    stateSnapshot: AuthorizationState;
    payloadSnapshot: AccountInfo;
    constructor(http: HttpClient, idTokenKey: string, refreshTokenKey: string, codeKey: string, apiTokenLogin: string, apiTokenCallback: string, apiRefreshToken: string, apiTokenInfo: string);
    logout(specificUrl?: boolean): void;
    logoutAudit(): Observable<Object>;
    redirectToUrl(href?: string): void;
    refreshToken(): Observable<string>;
    checkToken(token: string): Observable<unknown>;
    getToken(): Observable<string>;
    getTokenPayload<T>(): Observable<T>;
    getAccountInfo(): Observable<AccountInfo>;
    /** @ignore */
    ngOnDestroy(): void;
    private getAuthConfiguration;
    private getExistedToken;
    private getTokenFromLocal;
    private getTokenByRefreshToken;
    private getTokenByCode;
    private getParams;
    private replaceRedirectUrl;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthorizationStateService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AuthorizationStateService>;
}
