export declare enum CircuitState { CLOSED = "closed", OPEN = "open", HALF_OPEN = "half_open" } export interface CircuitBreakerConfig { failureThreshold: number; recoveryTimeout: number; monitoringWindow: number; successThreshold: number; } export declare class CircuitBreakerOpenError extends Error { readonly lastFailureTime: number; constructor(message: string, lastFailureTime: number); } export interface CircuitBreakerLogger { debug(message: string, meta?: Record): void; info(message: string, meta?: Record): void; warn(message: string, meta?: Record): void; error(message: string, meta?: Record): void; } export declare class CircuitBreaker { private readonly config; private readonly logger; private state; private failureCount; private lastFailureTime; private successCount; private readonly stateMutex; constructor(config: CircuitBreakerConfig, logger?: CircuitBreakerLogger); execute(operation: () => Promise): Promise; getState(): CircuitState; getFailureCount(): number; getLastFailureTime(): number; private transitionToHalfOpen; private recordSuccess; private recordFailure; private shouldAttemptReset; private resetCounts; }