export type CircuitBreakerState = "closed" | "open" | "half-open"; export interface CircuitBreakerOptions { failureThreshold?: number; resetTimeoutMs?: number; } export interface CircuitBreakerStatus { state: CircuitBreakerState; failureCount: number; lastFailureAt: Date | null; openedAt: Date | null; nextAttemptAt: Date | null; } export declare class CircuitBreakerOpenError extends Error { readonly remainingMs: number; constructor(remainingMs: number); } export declare class CircuitBreaker { private state; private failureCount; private lastFailureAt; private openedAt; private nextAttemptAt; private readonly failureThreshold; private readonly resetTimeoutMs; private readonly mutex; constructor(options?: CircuitBreakerOptions); execute(operation: () => Promise): Promise; private executeInternal; private updateState; private snapshot; private withLock; private onSuccess; private onFailure; getStatus(): Promise; }