import { AuthCredential } from './AuthCredential';
import { AuthConfig } from './AuthConfig';
export declare class AuthHandler {
    authConfig: AuthConfig;
    constructor(authConfig: AuthConfig);
    /**
     * Exchanges an auth token from the authorization response.
     * Returns an AuthCredential object containing the access token.
     */
    exchangeAuthToken(): AuthCredential | undefined;
    /**
     * Parses and stores the auth response in the state.
     */
    parseAndStoreAuthResponse(state: Record<string, any>): void;
    /**
     * Validates the handler's configuration.
     */
    _validate(): void;
    /**
     * Retrieves the auth response from the state.
     */
    getAuthResponse(state: Record<string, any>): AuthCredential | undefined;
    /**
     * Generates an auth request, possibly generating an auth URI if needed.
     */
    generateAuthRequest(): AuthConfig;
    /**
     * Generates a unique key for the given auth scheme and credential.
     */
    getCredentialKey(): string;
    /**
     * Generates an OAuth2 authorization URI.
     */
    generateAuthUri(): AuthCredential;
}
