import { ReadableStream, WritableStream, TransformStream } from "./std"; export declare type DuplexStreamResponse = { close(reason?): any; }; export declare type DuplexStreamHandler = (input: ReadableStream, output: WritableStream) => any | DuplexStreamResponse; export declare class ChunkQueue { private _reads; private _writes; push(value: T): Promise; readonly size: number; shift(): Promise<{}>; cancel(reason: any): void; } export declare function wrapDuplexStream(value: any): TransformStream; export declare class DuplexStream implements TransformStream { private _input; private _output; $response: DuplexStreamResponse; constructor(handler: DuplexStreamHandler); static empty(): DuplexStream<{}, {}>; static fromArray(items: any[]): DuplexStream<{}, {}>; then(resolve?: any, reject?: any): Promise; readonly writable: WritableStream; readonly readable: ReadableStream; } export declare const createDuplexStream: (handler: DuplexStreamHandler) => DuplexStream;