#import #import #import #import #import dictionary ReadableWritablePair { required ReadableStream readable; required WritableStream writable; }; dictionary StreamPipeOptions { boolean preventClose = false; boolean preventAbort = false; boolean preventCancel = false; AbortSignal signal; }; // https://streams.spec.whatwg.org/#enumdef-readablestreamreadermode enum ReadableStreamReaderMode { "byob" }; // https://streams.spec.whatwg.org/#dictdef-readablestreamgetreaderoptions dictionary ReadableStreamGetReaderOptions { ReadableStreamReaderMode mode; }; // https://streams.spec.whatwg.org/#readablestream [Exposed=*, Transferable] interface ReadableStream { constructor(optional object underlyingSource, optional QueuingStrategy strategy = {}); static ReadableStream from(any asyncIterable); readonly attribute boolean locked; Promise cancel(optional any reason); ReadableStreamReader getReader(optional ReadableStreamGetReaderOptions options = {}); ReadableStream pipeThrough(ReadableWritablePair transform, optional StreamPipeOptions options = {}); Promise pipeTo(WritableStream destination, optional StreamPipeOptions options = {}); sequence tee(); // FIXME: async iterable(optional ReadableStreamIteratorOptions options = {}); }; typedef (ReadableStreamDefaultReader or ReadableStreamBYOBReader) ReadableStreamReader;