import { HttpClient } from '@angular/common/http';
import { NgZone } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { OidcDataService } from '../data-services/oidc-data.service';
import { OpenIdConfiguration } from '../models/auth.configuration';
import { AuthWellKnownEndpoints } from '../models/auth.well-known-endpoints';
import { AuthorizationResult } from '../models/authorization-result';
import { ConfigurationProvider } from './auth-configuration.provider';
import { StateValidationService } from './oidc-security-state-validation.service';
import { TokenHelperService } from './oidc-token-helper.service';
import { LoggerService } from './oidc.logger.service';
import { OidcSecurityCheckSession } from './oidc.security.check-session';
import { OidcSecurityCommon } from './oidc.security.common';
import { OidcSecuritySilentRenew } from './oidc.security.silent-renew';
import { OidcSecurityUserService } from './oidc.security.user-service';
import { OidcSecurityValidation } from './oidc.security.validation';
export declare class OidcSecurityService {
    private oidcDataService;
    private stateValidationService;
    private router;
    private oidcSecurityCheckSession;
    private oidcSecuritySilentRenew;
    private oidcSecurityUserService;
    private oidcSecurityCommon;
    private oidcSecurityValidation;
    private tokenHelperService;
    private loggerService;
    private zone;
    private readonly httpClient;
    private readonly configurationProvider;
    private _onModuleSetup;
    private _onCheckSessionChanged;
    private _onAuthorizationResult;
    readonly onModuleSetup: Observable<boolean>;
    readonly onAuthorizationResult: Observable<AuthorizationResult>;
    readonly onCheckSessionChanged: Observable<boolean>;
    readonly onConfigurationChange: Observable<OpenIdConfiguration>;
    checkSessionChanged: boolean;
    moduleSetup: boolean;
    private _isModuleSetup;
    private _isAuthorized;
    private _isSetupAndAuthorized;
    private _userData;
    private authWellKnownEndpointsLoaded;
    private runTokenValidationRunning;
    private _scheduledHeartBeat;
    private boundSilentRenewEvent;
    constructor(oidcDataService: OidcDataService, stateValidationService: StateValidationService, router: Router, oidcSecurityCheckSession: OidcSecurityCheckSession, oidcSecuritySilentRenew: OidcSecuritySilentRenew, oidcSecurityUserService: OidcSecurityUserService, oidcSecurityCommon: OidcSecurityCommon, oidcSecurityValidation: OidcSecurityValidation, tokenHelperService: TokenHelperService, loggerService: LoggerService, zone: NgZone, httpClient: HttpClient, configurationProvider: ConfigurationProvider);
    setupModule(openIdConfiguration: OpenIdConfiguration, authWellKnownEndpoints: AuthWellKnownEndpoints): void;
    getUserData(): Observable<any>;
    getIsModuleSetup(): Observable<boolean>;
    getIsAuthorized(): Observable<boolean>;
    getToken(): string;
    getIdToken(): string;
    getPayloadFromIdToken(encode?: boolean): any;
    setState(state: string): void;
    getState(): string;
    setCustomRequestParameters(params: {
        [key: string]: string | number | boolean;
    }): void;
    authorize(urlHandler?: (url: string) => any): void;
    authorizedCallbackWithCode(urlToCheck: string): void;
    requestTokensWithCode(code: string, state: string, session_state: string | null): void;
    requestTokensWithCodeProcedure(code: string, state: string, session_state: string | null): void;
    private authorizedCodeFlowCallbackProcedure;
    private authorizedImplicitFlowCallbackProcedure;
    authorizedImplicitFlowCallback(hash?: string): void;
    private redirectTo;
    private authorizedCallbackProcedure;
    getUserinfo(isRenewProcess?: boolean, result?: any, id_token?: any, decoded_id_token?: any): Observable<boolean>;
    logoff(urlHandler?: (url: string) => any): void;
    refreshSession(): Observable<any>;
    handleError(error: any): void;
    startCheckingSilentRenew(): void;
    stopCheckingSilentRenew(): void;
    resetAuthorizationData(isRenewProcess: boolean): void;
    getEndSessionUrl(): string | undefined;
    private getValidatedStateResult;
    private setUserData;
    private setIsAuthorized;
    private setAuthorizationData;
    private createAuthorizeUrl;
    private createEndSessionUrl;
    private getSigningKeys;
    private handleErrorGetSigningKeys;
    private runTokenValidation;
    private silentRenewEventHandler;
}
