/** * Circuit Breaker Pattern * * Prevents cascading failures by temporarily blocking requests to failing services */ export declare interface CircuitBreakerConfig { failureThreshold?: number failureWindow?: number resetTimeout?: number successThreshold?: number timeout?: number } export declare interface CircuitBreakerStats { state: CircuitState failures: number successes: number totalRequests: number lastFailureTime: number | null lastSuccessTime: number | null } export type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN'; export declare class CircuitBreaker { constructor(name: string, config?: CircuitBreakerConfig); execute(fn: () => Promise): Promise; reset(): void; getState(): CircuitState; isOpen(): boolean; getStats(): CircuitBreakerStats; destroy(): void; } /** * Circuit Breaker Error */ export declare class CircuitBreakerError extends Error { constructor(message: string); } /** * Circuit Breaker Manager * * Manages multiple circuit breakers for different services */ export declare class CircuitBreakerManager { constructor(defaultConfig?: CircuitBreakerConfig); getBreaker(name: string, config?: CircuitBreakerConfig): CircuitBreaker; execute(name: string, fn: () => Promise, config?: CircuitBreakerConfig): Promise; getStats(): Record; resetAll(): void; destroy(): void; }