import type { CircuitBreakerConfig, CircuitBreakerStatus, Clock } from "./types.js";
export declare const systemClock: Clock;
export interface RetryConfig {
    readonly maxRetries: number;
    readonly retryBaseDelayMs: number;
    readonly timeoutMs?: number | undefined;
}
export declare function executeWithRetry<T>(operation: (attemptTimeoutMs?: number) => Promise<T>, config: RetryConfig, clock: Clock, signal?: AbortSignal): Promise<T>;
export declare class CircuitBreaker {
    private readonly modelId;
    private readonly config;
    private readonly clock;
    private state;
    private consecutiveFailures;
    private openedAt;
    private probesRemaining;
    constructor(modelId: string, config: CircuitBreakerConfig, clock: Clock);
    assertAllowed(): void;
    recordSuccess(): void;
    recordFailure(): void;
    status(modelId: string): CircuitBreakerStatus;
    private open;
    private close;
}
//# sourceMappingURL=resilience.d.ts.map