/**
 * VCR HTTP cassettes — record/replay for replay-safe HTTP tools.
 *
 * Sprint-563: B9 — Node.js native HTTP recording (no nock dependency).
 * Cassettes stored by hash(URL + method + body), served on strict replay.
 *
 * Mode 'record': store the real HTTP response for later replay.
 * Mode 'replay': serve cassettes; throw on miss in strict mode.
 */
export type VCRMode = "record" | "replay";
export interface VCRCassette {
    url: string;
    method: string;
    requestBody: string | null;
    status: number;
    statusText: string;
    headers: Record<string, string>;
    body: string;
    timestamp: number;
}
export interface VCRStats {
    hits: number;
    misses: number;
    recorded: number;
}
export declare class UndeterministicSideEffectError extends Error {
    constructor(url: string, method: string);
}
/**
 * In-memory HTTP VCR for deterministic replay of HTTP side effects.
 */
export declare class HttpVCR {
    private cassettes;
    mode: VCRMode;
    stats: VCRStats;
    static key(url: string, method: string, body: string | null): string;
    /** Record or replay an HTTP call. In record mode, captures the real response. */
    intercept(url: string, method: string, body: string | null, realFetch: () => Promise<Response>): Promise<Response>;
    /** Load cassettes from a previous recording (for replay mode). */
    load(cassettes: VCRCassette[]): void;
    /** Export all cassettes for storage. */
    export(): VCRCassette[];
    /** Clear all cassettes. */
    clear(): void;
}
//# sourceMappingURL=http-vcr.d.ts.map