import { type Logger, type ILogObj } from '../../../lib/logging/index.js';
export interface ProxyAuthOptions {
    proxyUsername?: string;
    proxyPassword?: string;
    /**
     * The type of proxy authentication to use.
     */
    proxyAuthorization?: 'Basic';
    logger: Logger<ILogObj>;
}
export interface ProxyAuthChallenge {
    method: string;
    realm?: string;
    nonce?: string;
    qop?: string;
    algorithm?: string;
}
/**
 * Handles proxy authentication challenges and responses
 */
export declare class ProxyAuthHandler {
    private options;
    private authState;
    private challenge?;
    private digestHandler?;
    constructor(options: ProxyAuthOptions);
    /**
     * Check if we have proxy credentials configured
     */
    hasCredentials(): boolean;
    /**
     * Generate the initial proxy authorization header
     */
    generateAuthHeader(): string | undefined;
    /**
     * Handle a proxy authentication challenge
     */
    handleChallenge(authenticateHeader: string): string | undefined;
    /**
     * Parse the WWW-Authenticate or Proxy-Authenticate header
     */
    private parseChallenge;
    /**
     * Generate a Digest authentication response
     */
    private generateDigestResponse;
    /**
     * Check if authentication was successful
     */
    isAuthenticated(): boolean;
    /**
     * Mark authentication as successful
     */
    markAuthenticated(): void;
    /**
     * Reset authentication state
     */
    reset(): void;
}
//# sourceMappingURL=ProxyAuthHandler.d.ts.map