import type { AuthorizeOptions, AuthorizeResponse, TokenOptions, TokenResponse, LogoutOptions, OpenIdConfiguration, JsonWebKeySet, UserInfoResponse } from "../types";
import type { IIdentityProviderClient } from "./IIdentityProviderClient";
export declare class IdentityProviderClient implements IIdentityProviderClient {
    private readonly baseUrl;
    private readonly codeVerifierKey;
    private readonly stateKey;
    private readonly nonceKey;
    constructor(baseUrl: string);
    authorize(options: AuthorizeOptions): Promise<string | void>;
    authorizeSilently(options: AuthorizeOptions): Promise<AuthorizeResponse>;
    token(options: TokenOptions): Promise<TokenResponse>;
    logout(options: LogoutOptions): Promise<void>;
    validateState(state: string): boolean;
    validateNonce(nonce: string): boolean;
    jwks(): Promise<JsonWebKeySet>;
    configuration(): Promise<OpenIdConfiguration>;
    userInfo(accessToken: string): Promise<UserInfoResponse>;
    clear(): void;
    getCodeVerifier(): string | null;
    getState(): string | null;
    getNonce(): string | null;
}
