import { Proxy as RustProxy } from 'rust-http-playback-proxy';
import { InventoryRepository } from './inventory.js';
import { DependencyInterface, DeviceType } from './types.js';
export interface RecordingProxyOptions {
    inventoryRepository?: InventoryRepository;
    entryUrl?: string;
    deviceType?: DeviceType;
    port?: number;
    excludePatterns?: string[];
}
export type RecordingProxyDependency = Pick<DependencyInterface, 'logger'>;
export declare class RecordingProxy {
    rustProxy?: RustProxy;
    inventoryRepository: InventoryRepository;
    entryUrl?: string;
    deviceType?: DeviceType;
    requestedPort?: number;
    excludePatterns?: string[];
    dependency: RecordingProxyDependency;
    constructor(options?: RecordingProxyOptions, dependency?: RecordingProxyDependency);
    start(): Promise<void>;
    get port(): number;
    get inventoryDirPath(): string;
    stop(): Promise<void>;
}
export declare function withRecordingProxy(options: RecordingProxyOptions, dependency: RecordingProxyDependency, cb: (proxy: RecordingProxy) => Promise<void>): Promise<void>;
