/// <reference types="node" />
import { Subject } from "rxjs";
import Transport from "@ledgerhq/hw-transport";
import type { RecordStore } from "./RecordStore";
export declare class TransportReplayer extends Transport {
    recordStore: RecordStore;
    artificialExchangeDelay: number;
    exchangeBlocker: null | Subject<number>;
    constructor(recordStore: RecordStore);
    static isSupported: () => Promise<boolean>;
    static list: () => Promise<null[]>;
    static listen: (o: any) => {
        unsubscribe: () => void;
    };
    static open: (recordStore: RecordStore) => Promise<TransportReplayer>;
    setArtificialExchangeDelay(delay: number): void;
    setScrambleKey(): void;
    close(): Promise<void>;
    /**
     * Sets an observable blocking an exchange until `unblockExchange` is called
     */
    enableExchangeBlocker(): void;
    /**
     * Unblock exchange by emitting an event (if enabled), and remove the exchange blocker
     */
    unblockExchange(): void;
    exchange(apdu: Buffer): Promise<Buffer>;
}
/**
 * create a transport replayer with a record store.
 * @param recordStore
 */
declare const openTransportReplayer: (recordStore: RecordStore) => Promise<TransportReplayer>;
export default openTransportReplayer;
//# sourceMappingURL=openTransportReplayer.d.ts.map