Source: externs/shaka/queue.js

/*! @license
 * Shaka Player
 * Copyright 2016 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */


/**
 * @externs
 */


/**
 * @typedef {{
 *   manifestUri: string,
 *   startTime: ?(number|Date),
 *   mimeType: ?string,
 *   config: ?shaka.extern.PlayerConfiguration,
 *   extraText: ?Array<!shaka.extern.ExtraText>,
 *   extraThumbnail: ?Array<string>,
 *   extraChapter: ?Array<!shaka.extern.ExtraChapter>
 * }}
 *
 * @property {string} manifestUri
 * @property {?(number|Date)} startTime
 * @property {?string} mimeType
 * @property {?shaka.extern.PlayerConfiguration} config
 * @property {?Array<!shaka.extern.ExtraText>} extraText
 * @property {?Array<string>} extraThumbnail
 * @property {?Array<!shaka.extern.ExtraChapter>} extraChapter
 * @exportDoc
 */
shaka.extern.QueueItem;

/**
 * An object that's responsible for all the queue-related logic
 * in the player.
 *
 * @interface
 * @extends {shaka.util.IDestroyable}
 * @exportDoc
 */
shaka.extern.IQueueManager = class extends EventTarget {
  /**
   * @return {!Promise}
   */
  destroy() {}

  /**
   * Called by the Player to provide an updated configuration any time it
   * changes.
   *
   * @param {shaka.extern.QueueConfiguration} config
   */
  configure(config) {}

  /**
   * Returns the current configuration.
   *
   * @return {?shaka.extern.QueueConfiguration}
   */
  getConfiguration() {}

  /**
   * Returns the current item.
   *
   * @return {?shaka.extern.QueueItem}
   */
  getCurrentItem() {}

  /**
   * Returns the index of the current playing item.
   *
   * @return {number}
   */
  getCurrentItemIndex() {}

  /**
   * Returns all items.
   *
   * @return {!Array<shaka.extern.QueueItem>}
   */
  getItems() {}

  /**
   * Insert new items in the current queue.
   *
   * @param {!Array<shaka.extern.QueueItem>} items
   */
  insertItems(items) {}

  /**
   * Remove all items.
   *
   * @return {!Promise}
   */
  removeAllItems() {}

  /**
   * Plays a item number in the queue.
   *
   * @param {number} itemIndex
   * @return {!Promise}
   */
  playItem(itemIndex) {}
};


/**
 * A factory for creating the queue manager.
 *
 * @typedef {function(shaka.Player):!shaka.extern.IQueueManager}
 * @exportDoc
 */
shaka.extern.IQueueManager.Factory;