/**
 * PKCE (Proof Key for Code Exchange) management
 */
import { PKCEAdapter, PKCEChallenge, StorageAdapter } from '../types/OAuthTypes';
export declare class PKCEManager {
    private pkceAdapter;
    private storageAdapter;
    private static readonly STORAGE_KEYS;
    constructor(pkceAdapter: PKCEAdapter, storageAdapter: StorageAdapter);
    /**
     * Generate PKCE challenge and store code verifier
     */
    generateChallenge(): Promise<PKCEChallenge>;
    /**
     * Generate and store OAuth state parameter
     */
    generateState(): Promise<string>;
    /**
     * Retrieve stored code verifier
     */
    getCodeVerifier(): Promise<string | null>;
    /**
     * Retrieve stored code challenge
     */
    getCodeChallenge(): Promise<string | null>;
    /**
     * Retrieve stored state
     */
    getStoredState(): Promise<string | null>;
    /**
     * Validate state parameter against stored value
     */
    validateState(receivedState: string): Promise<boolean>;
    /**
     * Clear all stored PKCE data
     */
    clearPKCEData(): Promise<void>;
    /**
     * Check if PKCE data exists in storage
     */
    hasPKCEData(): Promise<boolean>;
    /**
     * Get all stored PKCE data
     */
    getAllPKCEData(): Promise<{
        codeVerifier: string | null;
        codeChallenge: string | null;
        codeChallengeMethod: string | null;
        state: string | null;
    }>;
}
//# sourceMappingURL=PKCEManager.d.ts.map