import { InjectionToken } from '@angular/core';
export declare type AuthFlowNames = 'openid-connect/authorization-code' | 'openid-connect/implicit' | 'openid-connect/hybrid' | 'openid-connect/direct';
export declare class AuthFlow {
    private readonly _type;
    private static readonly CONSTANTS_MAP;
    static readonly AUTHORIZATION_CODE: AuthFlow;
    static readonly IMPLICIT: AuthFlow;
    static readonly HYBRID: AuthFlow;
    static readonly DIRECT: AuthFlow;
    private constructor();
    get type(): string;
    static byType(type: AuthFlowNames): AuthFlow;
}
export declare type AuthSpecScopes = 'profile' | 'group' | 'email' | 'address' | 'phone';
export interface AuthConfig {
    loginRoute: string;
    afterLoginRedirectRoute: string;
    wellKnown: string;
    clientID: string;
    clientSecret?: string;
    flow: AuthFlow;
    useNonce?: boolean;
    scope?: Array<AuthSpecScopes | string>;
}
export declare const AUTH_CONFIG: InjectionToken<AuthConfig>;
