export type CircuitState = 'closed' | 'open' | 'half-open'; export interface CircuitBreakerOptions { failureThreshold?: number; successThreshold?: number; halfOpenTimeout?: number; window?: number; } export declare class CircuitOpenError extends Error { readonly state: CircuitState; constructor(state?: CircuitState); } export declare class CircuitBreaker { private state; private failureCount; private successCount; private lastOpenedAt?; private failureTimes; private readonly failureThreshold; private readonly successThreshold; private readonly halfOpenTimeout; private readonly window; constructor(options?: CircuitBreakerOptions); getState(): CircuitState; execute(fn: () => Promise): Promise; recordSuccess(): void; recordFailure(): void; reset(): void; private maybeTransitionToHalfOpen; private onSuccess; private onFailure; private pruneOldFailures; } //# sourceMappingURL=CircuitBreaker.d.ts.map