/** * Multi-LLM Provider Helper Functions and Classes * @module @skillsmith/core/testing/MultiLLMProvider.helpers */ import type { CircuitBreakerConfig, ProviderConfig, FailoverCondition, LLMResponse } from './MultiLLMProvider.types.js'; /** Circuit breaker state type */ export type CircuitState = 'closed' | 'open' | 'half-open'; /** Circuit breaker metrics */ export interface CircuitBreakerMetrics { failures: number; successes: number; errorRate: number; } /** * Simple circuit breaker for provider failover */ export declare class CircuitBreaker { private config; private state; private failures; private successes; private lastFailureTime; private totalRequests; constructor(config: CircuitBreakerConfig); getState(): CircuitState; recordSuccess(): void; recordFailure(): void; canExecute(): boolean; reset(): void; getMetrics(): CircuitBreakerMetrics; } /** * Determine error condition from error object */ export declare function getErrorCondition(error: unknown): FailoverCondition; /** * Estimate token count from text * Rough estimate: ~4 characters per token */ export declare function estimateTokens(text: string): number; /** * Calculate cost from token counts */ export declare function calculateCost(config: ProviderConfig, inputTokens: number, outputTokens: number): number; /** * Calculate compatibility score from response * Simple scoring based on latency and success */ export declare function calculateCompatibilityScore(response: LLMResponse): number; /** * Simulate network request (for testing) */ export declare function simulateRequest(_config: ProviderConfig): Promise; //# sourceMappingURL=MultiLLMProvider.helpers.d.ts.map