import * as client from "openid-client";
import { AuthSession, AuthSessionStatus, OidcAuthUrlParameters, OpenIDConnectAuthSession, TemporaryAuthSessionData } from "./AuthSessionApi";
export declare class AuthSessionsService {
    static getIdentityProviderConfig(args: {
        authServerUrl: string;
        clientId: string;
    }): Promise<client.Configuration>;
    static buildAuthParameters(args: {
        config: client.Configuration;
        loginSuccessRoute: string;
        forceLoginPrompt?: boolean;
        scope: string;
        audience?: string;
    }): Promise<OidcAuthUrlParameters>;
    static redirectToIdentityProviderLogin(args: {
        name: string;
        runtimeUrl: string;
        clientId: string;
        config: client.Configuration;
        parameters: OidcAuthUrlParameters;
    }): Promise<void>;
    static getIssuerUrlFromOidcProxy(runtimeUrl: string): Promise<URL>;
    static checkIfAuthenticationRequired(runtimeUrl: string): Promise<{
        isAuthenticationRequired: true;
        authServerUrl: string;
    } | {
        isAuthenticationRequired: false;
    }>;
    static authenticate(args: {
        runtimeUrl: string;
        authServerUrl: string;
        clientId: string;
        name: string;
        scope: string;
        audience?: string;
        forceLoginPrompt?: boolean;
        loginSuccessRoute: string;
    }): Promise<void>;
    static logout(args: {
        authSession: AuthSession;
        clientId: string;
    }): Promise<void>;
    static reauthenticate(args: {
        authSession: OpenIDConnectAuthSession;
        fromUnauthorizedRequest?: boolean;
    }): Promise<{
        status: AuthSessionStatus;
        tokens?: undefined;
        claims?: undefined;
        tokensRefreshedAtDateISO?: undefined;
    } | {
        tokens: client.TokenEndpointResponse & client.TokenEndpointResponseHelpers;
        claims: client.IDToken;
        tokensRefreshedAtDateISO: string;
        status: AuthSessionStatus;
    }>;
    static getTemporaryAuthSessionData(): TemporaryAuthSessionData;
    static cleanTemporaryAuthSessionData(): void;
    static buildAuthSession(temporaryAuthSessionData: TemporaryAuthSessionData): Promise<AuthSession>;
    private static getClaimAsString;
}
//# sourceMappingURL=AuthSessionsService.d.ts.map