declare module 'stream/web' { // stub module, pending copy&paste from .d.ts or manual impl // copy from lib.dom.d.ts interface ReadableWritablePair { readable: ReadableStream; /** * Provides a convenient, chainable way of piping this readable stream * through a transform stream (or any other { writable, readable } * pair). It simply pipes the stream into the writable side of the * supplied pair, and returns the readable side for further use. * * Piping a stream will lock it for the duration of the pipe, preventing * any other consumer from acquiring a reader. */ writable: WritableStream; } interface StreamPipeOptions { preventAbort?: boolean; preventCancel?: boolean; /** * Pipes this readable stream to a given writable stream destination. * The way in which the piping process behaves under various error * conditions can be customized with a number of passed options. It * returns a promise that fulfills when the piping process completes * successfully, or rejects if any errors were encountered. * * Piping a stream will lock it for the duration of the pipe, preventing * any other consumer from acquiring a reader. * * Errors and closures of the source and destination streams propagate * as follows: * * An error in this source readable stream will abort destination, * unless preventAbort is truthy. The returned promise will be rejected * with the source's error, or with any error that occurs during * aborting the destination. * * An error in destination will cancel this source readable stream, * unless preventCancel is truthy. The returned promise will be rejected * with the destination's error, or with any error that occurs during * canceling the source. * * When this source readable stream closes, destination will be closed, * unless preventClose is truthy. The returned promise will be fulfilled * once this process completes, unless an error is encountered while * closing the destination, in which case it will be rejected with that * error. * * If destination starts out closed or closing, this source readable * stream will be canceled, unless preventCancel is true. The returned * promise will be rejected with an error indicating piping to a closed * stream failed, or with any error that occurs during canceling the * source. * * The signal option can be set to an AbortSignal to allow aborting an * ongoing pipe operation via the corresponding AbortController. In this * case, this source readable stream will be canceled, and destination * aborted, unless the respective options preventCancel or preventAbort * are set. */ preventClose?: boolean; signal?: AbortSignal; } interface ReadableStreamGenericReader { readonly closed: Promise; cancel(reason?: any): Promise; } interface ReadableStreamDefaultReadValueResult { done: false; value: T; } interface ReadableStreamDefaultReadDoneResult { done: true; value?: undefined; } type ReadableStreamController = ReadableStreamDefaultController; type ReadableStreamDefaultReadResult = ReadableStreamDefaultReadValueResult | ReadableStreamDefaultReadDoneResult; interface ReadableByteStreamControllerCallback { (controller: ReadableByteStreamController): void | PromiseLike; } interface UnderlyingSinkAbortCallback { (reason?: any): void | PromiseLike; } interface UnderlyingSinkCloseCallback { (): void | PromiseLike; } interface UnderlyingSinkStartCallback { (controller: WritableStreamDefaultController): any; } interface UnderlyingSinkWriteCallback { (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike; } interface UnderlyingSourceCancelCallback { (reason?: any): void | PromiseLike; } interface UnderlyingSourcePullCallback { (controller: ReadableStreamController): void | PromiseLike; } interface UnderlyingSourceStartCallback { (controller: ReadableStreamController): any; } interface TransformerFlushCallback { (controller: TransformStreamDefaultController): void | PromiseLike; } interface TransformerStartCallback { (controller: TransformStreamDefaultController): any; } interface TransformerTransformCallback { (chunk: I, controller: TransformStreamDefaultController): void | PromiseLike; } interface UnderlyingByteSource { autoAllocateChunkSize?: number; cancel?: ReadableStreamErrorCallback; pull?: ReadableByteStreamControllerCallback; start?: ReadableByteStreamControllerCallback; type: 'bytes'; } interface UnderlyingSource { cancel?: UnderlyingSourceCancelCallback; pull?: UnderlyingSourcePullCallback; start?: UnderlyingSourceStartCallback; type?: undefined; } interface UnderlyingSink { abort?: UnderlyingSinkAbortCallback; close?: UnderlyingSinkCloseCallback; start?: UnderlyingSinkStartCallback; type?: undefined; write?: UnderlyingSinkWriteCallback; } interface ReadableStreamErrorCallback { (reason: any): void | PromiseLike; } /** This Streams API interface represents a readable stream of byte data. */ interface ReadableStream { readonly locked: boolean; cancel(reason?: any): Promise; getReader(): ReadableStreamDefaultReader; pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; tee(): [ReadableStream, ReadableStream]; values(options?: { preventCancel?: boolean }): AsyncIterableIterator; [Symbol.asyncIterator](): AsyncIterableIterator; } const ReadableStream: { prototype: ReadableStream; new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy): ReadableStream; new (underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream; }; interface ReadableStreamDefaultReader extends ReadableStreamGenericReader { read(): Promise>; releaseLock(): void; } const ReadableStreamDefaultReader: { prototype: ReadableStreamDefaultReader; new (stream: ReadableStream): ReadableStreamDefaultReader; }; const ReadableStreamBYOBReader: any; const ReadableStreamBYOBRequest: any; interface ReadableByteStreamController { readonly byobRequest: undefined; readonly desiredSize: number | null; close(): void; enqueue(chunk: ArrayBufferView): void; error(error?: any): void; } const ReadableByteStreamController: { prototype: ReadableByteStreamController; new (): ReadableByteStreamController; }; interface ReadableStreamDefaultController { readonly desiredSize: number | null; close(): void; enqueue(chunk?: R): void; error(e?: any): void; } const ReadableStreamDefaultController: { prototype: ReadableStreamDefaultController; new (): ReadableStreamDefaultController; }; interface Transformer { flush?: TransformerFlushCallback; readableType?: undefined; start?: TransformerStartCallback; transform?: TransformerTransformCallback; writableType?: undefined; } interface TransformStream { readonly readable: ReadableStream; readonly writable: WritableStream; } const TransformStream: { prototype: TransformStream; new (transformer?: Transformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy): TransformStream; }; interface TransformStreamDefaultController { readonly desiredSize: number | null; enqueue(chunk?: O): void; error(reason?: any): void; terminate(): void; } const TransformStreamDefaultController: { prototype: TransformStreamDefaultController; new (): TransformStreamDefaultController; }; /** * This Streams API interface provides a standard abstraction for writing * streaming data to a destination, known as a sink. This object comes with * built-in back pressure and queuing. */ interface WritableStream { readonly locked: boolean; abort(reason?: any): Promise; close(): Promise; getWriter(): WritableStreamDefaultWriter; } const WritableStream: { prototype: WritableStream; new (underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream; }; /** * This Streams API interface is the object returned by * WritableStream.getWriter() and once created locks the < writer to the * WritableStream ensuring that no other streams can write to the underlying * sink. */ interface WritableStreamDefaultWriter { readonly closed: Promise; readonly desiredSize: number | null; readonly ready: Promise; abort(reason?: any): Promise; close(): Promise; releaseLock(): void; write(chunk?: W): Promise; } const WritableStreamDefaultWriter: { prototype: WritableStreamDefaultWriter; new (stream: WritableStream): WritableStreamDefaultWriter; }; /** * This Streams API interface represents a controller allowing control of a * WritableStream's state. When constructing a WritableStream, the * underlying sink is given a corresponding WritableStreamDefaultController * instance to manipulate. */ interface WritableStreamDefaultController { error(e?: any): void; } const WritableStreamDefaultController: { prototype: WritableStreamDefaultController; new (): WritableStreamDefaultController; }; interface QueuingStrategy { highWaterMark?: number; size?: QueuingStrategySize; } interface QueuingStrategySize { (chunk?: T): number; } interface QueuingStrategyInit { /** * Creates a new ByteLengthQueuingStrategy with the provided high water * mark. * * Note that the provided high water mark will not be validated ahead of * time. Instead, if it is negative, NaN, or not a number, the resulting * ByteLengthQueuingStrategy will cause the corresponding stream * constructor to throw. */ highWaterMark: number; } /** * This Streams API interface provides a built-in byte length queuing * strategy that can be used when constructing streams. */ interface ByteLengthQueuingStrategy extends QueuingStrategy { readonly highWaterMark: number; readonly size: QueuingStrategySize; } const ByteLengthQueuingStrategy: { prototype: ByteLengthQueuingStrategy; new (init: QueuingStrategyInit): ByteLengthQueuingStrategy; }; /** * This Streams API interface provides a built-in byte length queuing * strategy that can be used when constructing streams. */ interface CountQueuingStrategy extends QueuingStrategy { readonly highWaterMark: number; readonly size: QueuingStrategySize; } const CountQueuingStrategy: { prototype: CountQueuingStrategy; new (init: QueuingStrategyInit): CountQueuingStrategy; }; interface TextEncoderStream { /** Returns "utf-8". */ readonly encoding: 'utf-8'; readonly readable: ReadableStream; readonly writable: WritableStream; readonly [Symbol.toStringTag]: string; } const TextEncoderStream: { prototype: TextEncoderStream; new (): TextEncoderStream; }; interface TextDecoderOptions { fatal?: boolean; ignoreBOM?: boolean; } type BufferSource = ArrayBufferView | ArrayBuffer; interface TextDecoderStream { /** Returns encoding's name, lower cased. */ readonly encoding: string; /** Returns `true` if error mode is "fatal", and `false` otherwise. */ readonly fatal: boolean; /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */ readonly ignoreBOM: boolean; readonly readable: ReadableStream; readonly writable: WritableStream; readonly [Symbol.toStringTag]: string; } const TextDecoderStream: { prototype: TextDecoderStream; new (label?: string, options?: TextDecoderOptions): TextDecoderStream; }; } declare module 'node:stream/web' { export * from 'stream/web'; }