export declare type ReadableBYOBStreamOptions<T = any> = QueuingStrategy<T> & {
    type: 'bytes';
};
export declare type ReadableByteStreamOptions<T = any> = QueuingStrategy<T> & {
    type: 'bytes';
    autoAllocateChunkSize?: number;
};
export declare function toDOMStream<T>(source: AsyncIterable<T>, strategy?: QueuingStrategy<T>): ReadableStream<T>;
export declare function toDOMStream<T>(source: AsyncIterable<T>, options: ReadableBYOBStreamOptions<Uint8Array>): ReadableStream<Uint8Array>;
export declare function toDOMStream<T>(source: AsyncIterable<T>, options: ReadableByteStreamOptions<Uint8Array>): ReadableStream<Uint8Array>;
/**
 * @ignore
 */
export declare function toDOMStreamProto<T>(this: AsyncIterable<T>, strategy?: QueuingStrategy<T>): ReadableStream<T>;
export declare function toDOMStreamProto<T>(this: AsyncIterable<T>, options: ReadableBYOBStreamOptions<Uint8Array>): ReadableStream<Uint8Array>;
export declare function toDOMStreamProto<T>(this: AsyncIterable<T>, options: ReadableByteStreamOptions<Uint8Array>): ReadableStream<Uint8Array>;
declare module '../asynciterable/asynciterablex' {
    interface AsyncIterableX<T> {
        toDOMStream: typeof toDOMStreamProto;
        tee(): [ReadableStream<T>, ReadableStream<T>];
        pipeTo(writable: WritableStream<T>, options?: PipeOptions): Promise<void>;
        pipeThrough<R extends ReadableStream<any>>(duplex: {
            writable: WritableStream<T>;
            readable: R;
        }, options?: PipeOptions): ReadableStream<T>;
    }
}
