/**
 * Enhanced AI Processor Module for Requirements Gathering Agent
 *
 * Core AI processing engine with improved error handling, response processing,
 * and multi-provider support for robust document generation.
 *
 * @version 2.1.3
 * @author Requirements Gathering Agent Team
 * @created 2024
 * @updated June 2025
 *
 * Key Features:
 * - Multi-provider AI integration (Google AI, Azure OpenAI, GitHub AI, Ollama)
 * - Advanced error handling and retry mechanisms
 * - Performance metrics and monitoring
 * - Response validation and processing
 * - Configuration management and provider switching
 *
 * @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\modules\ai\AIProcessor.ts
 */
import { ChatMessage, AIProvider, AIResponse } from "./types.js";
export declare class AIProcessor {
    private static instance;
    private clientManager;
    private metricsManager;
    private retryManager;
    private config;
    private providerManager;
    private fallbackManager;
    private initializationPromise;
    private constructor();
    private ensureInitialized;
    static getInstance(): AIProcessor;
    processAIRequest<T>(operation: () => Promise<T>, operationName: string): Promise<T>;
    createMessages(systemPrompt: string, userPrompt: string): ChatMessage[];
    makeAICall(messages: ChatMessage[], maxTokens?: number): Promise<AIResponse>;
    private routeProviderCall;
    private makeGoogleAICall;
    private makeAzureOpenAICall;
    private makeAzureAIStudioCall;
    private makeGitHubAICall;
    private makeOllamaCall;
    private convertMessagesToGoogleFormat;
    private estimateTokens;
    extractContent(response: AIResponse): string;
    /**
     * Populates enhanced context from analysis results
     * @param analysisResults The analysis results to populate context from
     * @returns Enhanced context object
     */
    static populateEnhancedContextFromAnalysis(analysisResults: any): Promise<any>;
    testConnection(provider?: AIProvider): Promise<boolean>;
    getPerformanceMetrics(): Record<string, any>;
    refreshConnections(): Promise<void>;
    cleanup(): void;
}
export declare function getAIProcessor(): AIProcessor;
//# sourceMappingURL=AIProcessor.d.ts.map