import { AbstractStream } from './abstract-stream.ts';
import type { SendResult } from './abstract-message-stream.ts';
import type { MessageQueue, MessageQueueEvents } from './message-queue.ts';
import type { AbortOptions, MessageStreamDirection, TypedEventTarget } from '@libp2p/interface';
import type { Uint8ArrayList } from 'uint8arraylist';
interface MockStreamMessages extends MessageQueueEvents {
    closeWrite: Event;
    closeRead: Event;
}
interface MockStreamInit {
    delay?: number;
    direction: MessageStreamDirection;
    local: MessageQueue<MockStreamMessages>;
    remote: TypedEventTarget<MockStreamMessages>;
}
export declare class MockStream extends AbstractStream {
    private local;
    private remote;
    constructor(init: MockStreamInit);
    sendData(data: Uint8ArrayList): SendResult;
    sendReset(): void;
    sendCloseWrite(options?: AbortOptions): Promise<void>;
    sendCloseRead(options?: AbortOptions): Promise<void>;
    sendPause(): void;
    sendResume(): void;
    onRemotePaused(): void;
    onRemoteResumed(): void;
    onMuxerDrain(): void;
}
export {};
//# sourceMappingURL=mock-stream.d.ts.map