export interface ReadableStreamDefaultReader { readonly closed: Promise read(): Promise<{ value: unknown; done: boolean }> releaseLock(): void cancel(reason?: unknown): Promise } export class ReadableStreamDefaultReader { constructor(stream: ReadableStream) } export interface ReadableStreamDefaultController { readonly desiredSize: number enqueue(data: unknown): void close(): void error(error?: unknown): void } export class ReadableStreamDefaultController { constructor(stream: ReadableStream) } export interface UnderlyingSource { start?(this: S, controller: ReadableStreamDefaultController): void pull?(this: S, controller: ReadableStreamDefaultController): void cancel?(this: S, reason?: unknown): void } export interface CustomQueuingStrategy { highWaterMark?: number size?: (chunk: unknown) => number } export interface ReadableStream extends AsyncIterable { readonly locked: boolean getReader(): ReadableStreamDefaultReader cancel(reason?: unknown): Promise tee(): [ReadableStream, ReadableStream] pipeTo(destination: WritableStream): Promise } export class ReadableStream { constructor(underlyingSource?: UnderlyingSource, queuingStrategy?: CustomQueuingStrategy) static from(iterable: unknown | unknown[] | AsyncIterable): ReadableStream } export interface QueuingStrategyOptions { highWaterMark?: number } interface QueuingStrategy { readonly highWaterMark: number size(chunk: unknown): number } declare class QueuingStrategy { constructor(opts?: QueuingStrategyOptions) } export { type QueuingStrategy } export class CountQueuingStrategy extends QueuingStrategy {} export class ByteLengthQueuingStrategy extends QueuingStrategy {} export function isReadableStream(value: unknown): value is ReadableStream export function isReadableStreamErrored(stream: ReadableStream): boolean export function isReadableStreamDisturbed(stream: ReadableStream): boolean export interface WritableStreamDefaultWriter { readonly desiredSize: number readonly closed: Promise readonly ready: Promise write(chunk: unknown): Promise releaseLock(): void close(): Promise abort(reason?: unknown): Promise } export class WritableStreamDefaultWriter { constructor(stream: WritableStream) } export interface WritableStreamDefaultController { error(err?: unknown): void } export class WritableStreamDefaultController { constructor(stream: WritableStream) } export interface UnderlyingSink { start?(this: S, controller: WritableStreamDefaultController): void write?(this: S, chunk: unknown, controller: WritableStreamDefaultController): void close?(this: S): void abort?(this: S, reason?: unknown): void } export interface WritableStream extends AsyncIterable { readonly locked: boolean getWriter(): WritableStreamDefaultWriter abort(reason?: unknown): Promise close(): Promise } export class WritableStream { constructor(underlyingSink?: UnderlyingSink, queuingStrategy?: CustomQueuingStrategy) } export function isWritableStream(value: unknown): value is WritableStream