/// <reference types="node" />
/// <reference types="node" />
import { IncomingHttpHeaders } from 'http';
import { Proxy, ProxyDependency, ProxyOptions } from './proxy.js';
export interface RecordingTransaction {
    startedAt?: Date;
    responseStartedAt?: Date;
    responseEndedAt?: Date;
    method: string;
    url: string;
    statusCode?: number;
    incomingHttpHeaders?: IncomingHttpHeaders;
    contentChunks: Buffer[];
    err?: Error;
    errKind?: string;
}
export interface RecordingSession {
    startedAt?: Date;
    transactions: RecordingTransaction[];
}
export declare class RecordingProxy extends Proxy {
    startedAt?: Date;
    transactions: RecordingTransaction[];
    setup(): Promise<void>;
    saveInventory(): Promise<void>;
    shutdown(): Promise<void>;
}
export declare function withRecordingProxy(options: ProxyOptions, dependency: ProxyDependency, cb: (proxy: RecordingProxy) => Promise<void>): Promise<void>;
