import { TelemetryStore } from './telemetry.js'; import { type BaseProvider, type Message, type StreamOptions, type SendOptions, type UnifiedResponse, type ProviderConfig, type ProviderStatus, type OrchestrationEvent } from './types.js'; interface ModelMetrics { successRate: number; avgLatency: number; prevSuccessRate: number; prevAvgLatency: number; costPer1k: number; totalCalls: number; totalFailures: number; lastError: string | null; lastErrorTime: number; } type OrchestratorTelemetry = Pick; export declare class ProviderOrchestrator { private slots; private eventLog; private sessionId; private telemetry; constructor(telemetry?: OrchestratorTelemetry); registerProvider(provider: BaseProvider, config?: Partial): void; private selectProvider; private recordSuccess; private recordFailure; private tripCircuitBreaker; private pushTelemetryState; private getWatchdogTimeout; private retryWithBackoff; private logRoutingDecision; streamMessage(messages: Message[], options: StreamOptions): Promise; sendMessage(messages: Message[], options: SendOptions): Promise; private logEvent; getEventLog(): readonly OrchestrationEvent[]; getProviderHealth(): Array<{ id: string; status: ProviderStatus; score: number; metrics: ModelMetrics; concurrency: number; }>; getSessionId(): string; get providerCount(): number; } export {}; //# sourceMappingURL=orchestrator.d.ts.map