// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This is not a spec interface. Instead, it is used to generate bindings
// so that Blink code which wishes to create a stream can derive from
// UnderlyingSinkBase, and a JavaScript object can then be generated
// automatically for use in initializing a WritableStream.
[
LegacyNoInterfaceObject
]
interface UnderlyingSinkBase {
[CallWith=ScriptState, RaisesException] Promise<undefined> start(any controller);
[CallWith=ScriptState, RaisesException] Promise<undefined> write(any chunk, any controller);
[CallWith=ScriptState, RaisesException] Promise<undefined> close();
[CallWith=ScriptState, RaisesException] Promise<undefined> abort(any reason);
// This only exists to prevent Object.prototype.type being accessed.
[CallWith=ScriptState] readonly attribute any type;
};