/** * Provider Manager for Requirements Gathering Agent * Handles provider configuration, validation, and failover */ interface ProviderConfig { name: string; check: () => Promise; priority: number; description: string; setupGuide?: string; endpoint?: string; tokenLimit: number; costPerToken?: number; } interface ProviderMetrics { totalRequests: number; successfulRequests: number; failedRequests: number; averageResponseTime: number; lastError: string | null; lastErrorTime: Date | null; tokenUsage: { total: number; average: number; }; } export declare class ProviderManager { private providers; private metrics; private quotas; private activeProvider; private fallbackQueue; private rateLimiters; constructor(); private initializeProviders; private setDefaultQuotas; private initializeMetrics; private addProvider; validateConfigurations(): Promise>; getActiveProvider(): string | null; switchProvider(): Promise; updateMetrics(providerName: string, success: boolean, responseTime: number, tokenCount: number, error?: Error): void; getProviderMetrics(providerName?: string): Map | ProviderMetrics | null; getProviderConfig(providerName: string): ProviderConfig | null; validateProvider(providerName: string): Promise; getTokenLimit(providerName?: string): number; checkRateLimit(providerName: string): Promise; getDailyTokenUsage(providerName: string): number; getDailyCost(providerName: string): number; checkQuota(providerName: string): boolean; getProviderStatus(providerName: string): { available: boolean; withinRateLimit: boolean; withinQuota: boolean; quotaRemaining?: number; estimatedCost?: number; }; } export {}; //# sourceMappingURL=ProviderManager.d.ts.map