/** * Agentic QE v3 - LLM Provider Manager * ADR-011: LLM Provider System for Quality Engineering * * Manages multiple LLM providers with: * - Load balancing (round-robin, least-cost, least-latency, random) * - Automatic failover * - Circuit breaker integration * - Response caching * - Cost tracking */ import { LLMProvider, LLMProviderType, ProviderManagerConfig, ProviderMetrics, Message, GenerateOptions, EmbedOptions, CompleteOptions, LLMResponse, EmbeddingResponse, CompletionResponse, HealthCheckResult, CircuitBreakerConfig, LLMCacheConfig } from './interfaces'; import { CostTracker } from './cost-tracker'; /** * Default provider manager configuration */ export declare const DEFAULT_PROVIDER_MANAGER_CONFIG: ProviderManagerConfig; /** * LLM Provider Manager * Coordinates multiple LLM providers with load balancing and failover */ export declare class ProviderManager { private providers; private circuitBreakers; private cache; private costTracker; private config; private metrics; private roundRobinIndex; private initialized; constructor(config?: Partial, options?: { circuitBreakerConfig?: Partial; cacheConfig?: Partial; costTracker?: CostTracker; }); /** * Initialize the provider manager */ initialize(): Promise; /** * Generate text using the best available provider */ generate(input: string | Message[], options?: GenerateOptions): Promise; /** * Generate embedding using the best available provider */ embed(text: string, options?: EmbedOptions): Promise; /** * Complete text using the best available provider */ complete(prompt: string, options?: CompleteOptions): Promise; /** * Health check all providers */ healthCheck(): Promise>; /** * Get a specific provider */ getProvider(type: LLMProviderType): LLMProvider | undefined; /** * Get all available providers */ getAvailableProviders(): LLMProviderType[]; /** * Get metrics for all providers */ getMetrics(): Record; /** * Get cache statistics */ getCacheStats(): { generation: import("./interfaces").LLMCacheStats; embedding: import("./interfaces").LLMCacheStats; completion: import("./interfaces").LLMCacheStats; total: import("./interfaces").LLMCacheStats; }; /** * Get cost summary */ getCostSummary(period?: 'hour' | 'day' | 'week' | 'month' | 'all'): import("./interfaces").CostSummary; /** * Clear cache */ clearCache(): void; /** * Reset circuit breakers */ resetCircuitBreakers(): void; /** * Dispose all resources */ dispose(): Promise; /** * Create provider instances based on configuration */ private createProviders; /** * Create a single provider instance */ private createProvider; /** * Initialize metrics for a provider */ private initializeMetrics; /** * Execute a provider operation with failover */ private executeWithFailover; /** * Select the best provider based on load balancing strategy */ private selectProvider; /** * Round-robin selection */ private selectRoundRobin; /** * Select provider with least cost */ private selectLeastCost; /** * Select provider with least average latency */ private selectLeastLatency; /** * Random selection */ private selectRandom; /** * Record a successful operation */ private recordSuccess; /** * Record a failed operation */ private recordFailure; /** * Ensure the manager is initialized */ private ensureInitialized; /** * Calculate average of numbers */ private calculateAverage; /** * Calculate percentile of numbers */ private calculatePercentile; } /** * Create a pre-configured provider manager */ export declare function createProviderManager(config?: Partial): ProviderManager; /** * Create a provider manager with default settings for QE */ export declare function createQEProviderManager(): ProviderManager; //# sourceMappingURL=provider-manager.d.ts.map