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