async remove(contentType, startTime, endTime, continuityTimelines) {
    const ContentType = shaka.util.ManifestParserUtils.ContentType;
    if (contentType == ContentType.VIDEO && this.captionParser_) {
      this.captionParser_.remove(continuityTimelines);
    }
    if (contentType == ContentType.TEXT) {
      await this.textEngine_.remove(startTime, endTime);
    } else if (endTime > startTime) {
      await this.enqueueOperation_(
          contentType,
          () => this.remove_(contentType, startTime, endTime),
          null);
      if (this.needSplitMuxedContent_) {
        await this.enqueueOperation_(
            ContentType.AUDIO,
            () => this.remove_(ContentType.AUDIO, startTime, endTime),
            null);
      }
    }
  }
Enqueue an operation to remove data from the SourceBuffer.

@param {shaka.util.ManifestParserUtils.ContentType} contentType
@param {number} startTime relative to the start of the presentation
@param {number} endTime relative to the start of the presentation
@param {Array<number>=} continuityTimelines a list of continuity timelines
    that are still available on the stream.
@return {!Promise}