/** * Circuit Breaker Pattern * * Prevents cascading failures by opening the circuit after too many failures. * States: closed (normal) -> open (failing) -> half-open (testing) -> closed */ import type { CircuitState, CircuitBreakerConfig } from './types.js'; export declare class CircuitBreaker { private config; private state; private failures; private successes; private lastFailureTime; private halfOpenAttempts; constructor(config: CircuitBreakerConfig); /** * Check if a request can proceed. */ canRequest(): boolean; /** * Record a successful request. */ recordSuccess(): void; /** * Record a failed request. */ recordFailure(): void; /** * Get current circuit state. */ getState(): CircuitState; /** * Get circuit breaker statistics. */ getStats(): { state: CircuitState; failures: number; successes: number; lastFailureTime: number | null; halfOpenAttempts: number; }; /** * Force reset the circuit breaker to closed state. */ forceReset(): void; /** * Update state based on recovery time. */ private updateState; /** * Transition to a new state with event emission. */ private transitionTo; /** * Reset internal counters. */ private reset; } /** * Create a circuit breaker with default configuration. */ export declare function createCircuitBreaker(config?: Partial): CircuitBreaker; //# sourceMappingURL=circuit-breaker.d.ts.map