import type { RawHit } from "../../runtime/ports/source-provider.js";
export interface SourceCache {
    get(key: string): Promise<RawHit[] | null>;
    set(key: string, hits: RawHit[], ttlMs: number): Promise<void>;
}
export declare class InMemorySourceCache implements SourceCache {
    private readonly maxEntries;
    private store;
    constructor(maxEntries?: number);
    get(key: string): Promise<RawHit[] | null>;
    set(key: string, hits: RawHit[], ttlMs: number): Promise<void>;
}
export interface CircuitBreaker {
    canRequest(sourceId: string): boolean;
    recordSuccess(sourceId: string): void;
    recordFailure(sourceId: string): void;
}
export declare class InMemoryCircuitBreaker implements CircuitBreaker {
    private readonly threshold;
    private readonly cooldownMs;
    private state;
    constructor(threshold?: number, cooldownMs?: number);
    canRequest(sourceId: string): boolean;
    recordSuccess(sourceId: string): void;
    recordFailure(sourceId: string): void;
}
