import { type CircuitBreaker } from "./circuit-breaker.js"; import { type ClearedCooldownFact } from "./target-facts.js"; export type CooldownClearKind = "credential-fault"; export interface CooldownClearTarget { readonly provider: string; readonly model?: string; /** Configured credential label, never key material. */ readonly credential?: string; readonly kinds?: readonly CooldownClearKind[]; } export interface CooldownCellIdentifier { readonly provider: string; readonly model: string | null; readonly credential: string; } export interface ClearedCooldownGroup { readonly count: number; readonly items: T[]; } export interface CooldownClearResult { readonly target: CooldownClearTarget; readonly cleared: { readonly breakerCells: ClearedCooldownGroup; readonly credentialFaults: ClearedCooldownGroup; readonly facts: ClearedCooldownGroup; }; } export type CooldownClearTargetKey = keyof CooldownClearTarget; /** Validate the cooldown-clear wire envelope under a caller-owned exact target-key policy. */ export declare function isCooldownClearResult(value: unknown, expectedTarget: CooldownClearTarget, acceptedTargetKeys: readonly CooldownClearTargetKey[]): value is CooldownClearResult; /** One mutation seam for the live breaker and process-global learned fact store. */ export declare function clearCooldowns(breaker: CircuitBreaker, target: CooldownClearTarget, opts?: { factsPath?: string; now?: number; }): CooldownClearResult;