import type { AgentBusEvent, CircuitBreakerSnapshot } from '../types/bus/index.js';
import type { RunId } from '../types/ids/index.js';
import type { Logger } from '../utils/logger.js';
export declare class CircuitBreaker {
    private readonly breakers;
    private readonly failureThreshold;
    private readonly resetTimeoutMs;
    private readonly log;
    private readonly emit;
    constructor(log: Logger, emit: (event: AgentBusEvent) => void, failureThreshold?: number, resetTimeoutMs?: number);
    canExecute(agentRunId: RunId): boolean;
    recordSuccess(agentRunId: RunId): void;
    recordFailure(agentRunId: RunId): void;
    getSnapshot(agentRunId: RunId): CircuitBreakerSnapshot | undefined;
    reset(agentRunId: RunId): void;
    listTripped(): CircuitBreakerSnapshot[];
}
//# sourceMappingURL=breaker.d.ts.map