import type { CacheStats, TokenCache, TokenCacheEntry } from "./types.js"; export type ResilientCacheCircuitState = "closed" | "open" | "half-open"; export interface ResilientCacheOptions { failureThreshold?: number; openDurationMs?: number; wallNow?: () => number; now?: () => number; } export interface ResilientCacheStatus { readonly state: ResilientCacheCircuitState; readonly usingFallback: boolean; readonly failureCount: number; /** Monotonic timestamp from the configured circuit clock. */ readonly circuitOpenedAt: number | null; readonly pendingMutations: number; readonly pendingClear: boolean; readonly queuedMutations: number; } export declare class ResilientCache implements TokenCache { private readonly primary; private readonly fallback; private readonly failureThreshold; private readonly openDurationMs; private readonly now; private readonly wallNow; private state; private failureCount; private circuitOpenedAt; private recoveryPromise; private recoveryOwner; private pendingMutations; private pendingClear; private mutationTail; private queuedMutations; private closed; private closePromise; constructor(primary: TokenCache, fallback: TokenCache, options?: ResilientCacheOptions); get(key: string): Promise; set(key: string, entry: TokenCacheEntry): Promise; delete(key: string): Promise; clear(): Promise; has(key: string): Promise; stats(): Promise; close(): Promise; getStatus(): ResilientCacheStatus; private canUsePrimary; private performRecovery; private replayPendingMutations; private recordReadSuccess; private recordReadFailure; private recordMutationSuccess; private recordMutationFailure; private openCircuit; private rememberSet; private rememberDelete; private rememberMutation; private rememberClear; private assertOpen; private readClock; private readWallClock; private deleteFromBackends; private enqueueMutation; } //# sourceMappingURL=resilient-cache.d.ts.map