// https://streams.spec.whatwg.org/#dictdef-underlyingsource
dictionary UnderlyingSource {
    UnderlyingSourceStartCallback start;
    UnderlyingSourcePullCallback pull;
    UnderlyingSourceCancelCallback cancel;
    ReadableStreamType type;
    [EnforceRange] unsigned long long autoAllocateChunkSize;
};

typedef (ReadableStreamDefaultController or ReadableByteStreamController) ReadableStreamController;

callback UnderlyingSourceStartCallback = any (ReadableStreamController controller);
callback UnderlyingSourcePullCallback = Promise<undefined> (ReadableStreamController controller);
callback UnderlyingSourceCancelCallback = Promise<undefined> (optional any reason);

enum ReadableStreamType { "bytes" };
