export declare class ReadableByteStreamController { constructor( stream: ReadableStream, underlyingByteSource: Source, highWaterMark: number ); readonly byobRequest: any; readonly desiredSize: number; close(): void; enqueue(chunk: T): void; error(error: any): void; } export declare class ReadableStreamDefaultController { constructor( stream: ReadableStream, underlyingSource: Source, size: ((chunk: T) => number) | undefined, highWaterMark: number ); readonly desiredSize: number; close(): void; enqueue(chunk: T): void; error(error: any): void; } export type ReadableStreamController = ReadableStreamDefaultController | ReadableByteStreamController; export interface IChunkReadResult { value: T; done?: boolean; } export interface ReadableStreamDefaultReader { // constructor(stream) readonly closed: Promise; cancel(reason: any): Promise; read(): Promise>; releaseLock(): void; } export interface ReadableStreamBYOBReader { readonly closed: Promise; cancel(reason: any): Promise; read(view: any): Promise>; // ArrayBuffer.isView(view) === true && view.byteLength > 0 releaseLock(): void; } export type ReadableStreamReader = ReadableStreamDefaultReader; export interface Source { type?: 'bytes' | undefined; start?(controller: ReadableStreamController): Promise | any | void; pull?(controller: ReadableStreamController): Promise | any | void; cancel?(reason: any): Promise | any | void; } export interface QueuingStrategy { size?: (chunk: T) => number; readonly highWaterMark?: number; } export declare class ByteLengthQueuingStrategy< T extends { byteLength: number; } > implements QueuingStrategy { constructor({ highWaterMark }: { highWaterMark: number; }); size: (chunk: { byteLength: number; }) => number; readonly highWaterMark: number; } export declare class CountQueuingStrategy implements QueuingStrategy { constructor({ highWaterMark }: { highWaterMark: number; }); size: (chunk: T) => number; readonly highWaterMark: number; } export declare class ReadableStream { constructor( underlyingSource?: Source, options?: QueuingStrategy ); readonly locked: boolean; cancel(reason: any): Promise; getReader(options?: { mode?: string; }): ReadableStreamReader; pipeThrough( transform: { writable: WritableStream; readable: ReadableStream; }, options?: { preventClose?: boolean; preventAbort?: boolean; preventCancel?: boolean; } ): ReadableStream; pipeTo( dest: WritableStream, options?: { preventClose?: boolean; preventAbort?: boolean; preventCancel?: boolean; } ): Promise; tee(): [ReadableStream, ReadableStream]; } export interface WritableStreamDefaultWriter { // constructor(stream) readonly closed: Promise; readonly desiredSize: number; readonly ready: Promise; abort(reason: any): Promise; close(): Promise; releaseLock(): void; write(chunk: T): Promise; } export interface TransformStreamDefaultController { enqueue(chunk: T): void; close(): void; error(reason: any): void; } export type TransformStreamController = TransformStreamDefaultController; export class TransformStream { constructor(transformer: { start?(controller: TransformStreamController): any, transform?( chunk: T, controller: TransformStreamController ): any, flush?( controller: TransformStreamController ): any }); readable: ReadableStream; writable: WritableStream; } export declare class WritableStreamDefaultController { constructor( stream: WritableStream, underlyingSink: Sink, size: ((chunk: T) => number) | undefined, highWaterMark: number ); error(error: any): void; } export type WritableStreamController = WritableStreamDefaultController; export interface Sink { start?(controller: WritableStreamController): Promise | any | void; write?(chunk: T): Promise | any | void; close?(): Promise | any | void; abort?(reason: any): Promise | any | void; } export declare class WritableStream { constructor(underlyingSink?: Sink); // constructor(underlyingSink = {}, { size, highWaterMark = 1 } = {}) readonly locked: boolean; abort(reason: any): Promise; getWriter(): WritableStreamDefaultWriter; }