/**
 * Enhanced AI Client Manager Module for Requirements Gathering Agent
 *
 * Advanced client management system with improved connection pooling, error handling,
 * and multi-provider authentication for reliable AI service integration.
 *
 * @version 2.1.3
 * @author Requirements Gathering Agent Team
 * @created 2024
 * @updated June 2025
 *
 * Key Features:
 * - Multi-provider client management (Azure, Google, GitHub, Ollama)
 * - Advanced connection pooling and resource management
 * - Robust authentication handling (API keys, Entra ID, tokens)
 * - Enhanced error handling and recovery mechanisms
 * - Performance optimization and monitoring
 *
 * @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\modules\ai\AIClientManager.ts
 */
import { AIProvider } from "./types.js";
declare class AIClientManager {
    private static instance;
    private clients;
    private initialized;
    private skipAI;
    private config;
    private readonly MAX_CONNECTION_ATTEMPTS;
    private readonly CONNECTION_TIMEOUT_MS;
    private constructor();
    static getInstance(): AIClientManager;
    initializeClients(): Promise<void>;
    initializeSpecificProvider(provider: AIProvider): Promise<void>;
    private initializeProvider;
    private initializeGoogleAI;
    private initializeAzureOpenAIWithEntra;
    private initializeAzureOpenAIWithKey;
    private initializeAzureAIStudio;
    private initializeGitHubAI;
    private initializeOllama;
    private setClient;
    private validateConnection;
    private performHealthCheck;
    private healthCheckAzureOpenAI;
    private healthCheckAzureAIStudio;
    private healthCheckGitHubAI;
    private createTimeoutPromise;
    private enhanceConnectionError;
    getClient(provider?: AIProvider): any;
    getCurrentProvider(): AIProvider;
    isInitialized(): boolean;
    shouldSkipAI(): boolean;
    getClientHealth(): Record<string, any>;
    refreshConnection(provider?: AIProvider): Promise<void>;
    cleanup(): void;
}
export { AIClientManager };
//# sourceMappingURL=AIClientManager.d.ts.map