import { Location } from '@angular/common';
import { AuthProvider, UserInfo } from '@dbg-riskit/common';
import { HttpService } from '@dbg-riskit/angular-http';
import { Observable } from 'rxjs';
import { AuthConfig } from './auth.config';
import { AuthStorageService } from './auth.storage.service';
import { AuthResponse } from './token.responses';
import { WellKnownService } from './well.known.service';
import * as i0 from "@angular/core";
export declare const AUTH_CHECK_INTERVAL = 60000;
export declare class AuthService implements AuthProvider {
    private readonly authConfig;
    private readonly wellKnownService;
    private readonly http;
    private readonly storage;
    private readonly _loggedInStream;
    private tokenData?;
    private refreshTimeout?;
    private authCheckInterval?;
    private readonly redirectURL;
    private readonly openIDScope;
    private readonly _initService;
    constructor(authConfig: AuthConfig, wellKnownService: WellKnownService, http: HttpService, storage: AuthStorageService, location: Location);
    get loggedIn(): Observable<boolean>;
    get userProfile(): Observable<UserInfo | undefined>;
    get loggedInStream(): Observable<boolean>;
    emitLoginStatusChange(status: boolean): void;
    loginViaAuthService(): Observable<boolean>;
    checkLocationForLoginData(): Observable<boolean>;
    private checkParametersHybridFlow;
    private checkParametersAuthCodeFlow;
    private checkParametersImplicitFlow;
    private requestTokenBasedOnCode;
    directLogin(username: string, password: string): Observable<boolean>;
    processToken(response: AuthResponse, syncTime?: boolean): Observable<boolean>;
    private validateResponseNonce;
    private static validateResponseTokenType;
    private storeTokensIfValid;
    private afterLogin;
    logout(): Observable<never>;
    private setupAuthCheck;
    private disableAuthCheck;
    private checkAuth;
    private setupTokenRefresh;
    private disableTokenRefresh;
    private tryToRefresh;
    private refreshToken;
    private validateToken;
    private static checkTokenExpiration;
    private checkTokenNonce;
    private static checkTokenIssuer;
    private checkTokenAudience;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AuthService>;
}
