// https://w3c.github.io/media-source/#dom-sourcebuffer
enum AppendMode {
    "segments",
    "sequence",
};

// https://w3c.github.io/media-source/#dom-sourcebuffer
[Exposed=(Window,DedicatedWorker)]
interface SourceBuffer : EventTarget {
    attribute AppendMode mode;
    readonly  attribute boolean updating;
    readonly  attribute TimeRanges buffered;
    [FIXME] attribute double timestampOffset;
    [FIXME] readonly  attribute AudioTrackList audioTracks;
    [FIXME] readonly  attribute VideoTrackList videoTracks;
    [FIXME] readonly  attribute TextTrackList textTracks;
    [FIXME] attribute double appendWindowStart;
    [FIXME] attribute unrestricted double appendWindowEnd;

    attribute EventHandler onupdatestart;
    attribute EventHandler onupdate;
    attribute EventHandler onupdateend;
    attribute EventHandler onerror;
    attribute EventHandler onabort;

    undefined appendBuffer(BufferSource data);
    undefined abort();
    undefined changeType(DOMString type);
    [FIXME] undefined remove(double start, unrestricted double end);
};
