UNPKG

@types/chrome

Version:
1,162 lines (1,023 loc) 35.2 kB
// Type definitions for Chrome Cast application development // Project: https://developers.google.com/cast/ // Definitions by: Thomas Stig Jacobsen <https://github.com/eXeDK> // Stefan Ullinger <https://github.com/stefanullinger> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped //////////////////// // Cast // @see https://code.google.com/p/chromium/codesearch#chromium/src/ui/file_manager/externs/chrome_cast.js //////////////////// declare namespace chrome.cast { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.AutoJoinPolicy */ export enum AutoJoinPolicy { CUSTOM_CONTROLLER_SCOPED = 'custom_controller_scoped', TAB_AND_ORIGIN_SCOPED = 'tab_and_origin_scoped', ORIGIN_SCOPED = 'origin_scoped', PAGE_SCOPED = 'page_scoped', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.DefaultActionPolicy */ export enum DefaultActionPolicy { CREATE_SESSION = 'create_session', CAST_THIS_TAB = 'cast_this_tab', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.Capability */ export enum Capability { VIDEO_OUT = 'video_out', AUDIO_OUT = 'audio_out', VIDEO_IN = 'video_in', AUDIO_IN = 'audio_in', MULTIZONE_GROUP = 'multizone_group', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ErrorCode */ export enum ErrorCode { CANCEL = 'cancel', TIMEOUT = 'timeout', API_NOT_INITIALIZED = 'api_not_initialized', INVALID_PARAMETER = 'invalid_parameter', EXTENSION_NOT_COMPATIBLE = 'extension_not_compatible', EXTENSION_MISSING = 'extension_missing', RECEIVER_UNAVAILABLE = 'receiver_unavailable', SESSION_ERROR = 'session_error', CHANNEL_ERROR = 'channel_error', LOAD_MEDIA_FAILED = 'load_media_failed', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverAvailability */ export enum ReceiverAvailability { AVAILABLE = 'available', UNAVAILABLE = 'unavailable', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.SenderPlatform */ export enum SenderPlatform { CHROME = 'chrome', IOS = 'ios', ANDROID = 'android', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverType */ export enum ReceiverType { CAST = 'cast', DIAL = 'dial', HANGOUT = 'hangout', CUSTOM = 'custom', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverAction */ export enum ReceiverAction { CAST = 'cast', STOP = 'stop', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.SessionStatus */ export enum SessionStatus { CONNECTED = 'connected', DISCONNECTED = 'disconnected', STOPPED = 'stopped', } /** * @const {!Array<number>} * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.VERSION */ export var VERSION: Array<number>; /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.isAvailable */ export var isAvailable: boolean; /** * @param apiConfig * @param successCallback * @param errorCallback */ export function initialize( apiConfig: chrome.cast.ApiConfig, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param successCallback * @param errorCallback * @param opt_sessionRequest * @param opt_label */ export function requestSession( successCallback: (session: chrome.cast.Session) => void, errorCallback: (error: chrome.cast.Error) => void, sessionRequest?: chrome.cast.SessionRequest, label?: string, ): void; /** * @param sessionId The id of the session to join. */ export function requestSessionById(sessionId: string): void; /** * @param listener */ export function addReceiverActionListener( listener: (receiver: chrome.cast.Receiver, receiverAction: chrome.cast.ReceiverAction) => void, ): void; /** * @param listener */ export function removeReceiverActionListener( listener: (receiver: chrome.cast.Receiver, receiverAction: chrome.cast.ReceiverAction) => void, ): void; /** * @param message The message to log. */ export function logMessage(message: string): void; /** * @param receivers * @param successCallback * @param errorCallback */ export function setCustomReceivers( receivers: Array<chrome.cast.Receiver>, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param receiver * @param successCallback * @param errorCallback */ export function setReceiverDisplayStatus( receiver: chrome.cast.Receiver, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param escaped A string to unescape. * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.unescape */ export function unescape(escaped: string): string; export class ApiConfig { /** * @param sessionRequest * @param sessionListener * @param receiverListener * @param opt_autoJoinPolicy * @param opt_defaultActionPolicy * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ApiConfig */ constructor( sessionRequest: chrome.cast.SessionRequest, sessionListener: (session: chrome.cast.Session) => void, receiverListener: (receiverAvailability: chrome.cast.ReceiverAvailability) => void, autoJoinPolicy?: chrome.cast.AutoJoinPolicy, defaultActionPolicy?: chrome.cast.DefaultActionPolicy, ); sessionRequest: chrome.cast.SessionRequest; sessionListener: (session: chrome.cast.Session) => void; receiverListener: (receiverAvailability: chrome.cast.ReceiverAvailability) => void; autoJoinPolicy: chrome.cast.AutoJoinPolicy; defaultActionPolicy: chrome.cast.DefaultActionPolicy; } export class Error { /** * @param code * @param opt_description * @param opt_details * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error */ constructor(code: chrome.cast.ErrorCode, description?: string, details?: Object); code: chrome.cast.ErrorCode; description: string | null; details: object; } export class Image { /** * @param url * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Image */ constructor(url: string); url: string; height: number | null; width: number | null; } export class SenderApplication { /** * @param platform * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderApplication */ constructor(platform: chrome.cast.SenderPlatform); platform: chrome.cast.SenderPlatform; url: string | null; packageId: string | null; } export class SessionRequest { /** * @param appId * @param opt_capabilities * @param opt_timeout * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest */ constructor(appId: string, capabilities?: Array<chrome.cast.Capability>, timeout?: number); appId: string; capabilities: Array<chrome.cast.Capability>; requestSessionTimeout: number; language: string | null; } export class Session { /** * @param sessionId * @param appId * @param displayName * @param appImages * @param receiver * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session */ constructor( sessionId: string, appId: string, displayName: string, appImages: Array<chrome.cast.Image>, receiver: chrome.cast.Receiver, ); sessionId: string; appId: string; displayName: string; appImages: Array<chrome.cast.Image>; receiver: chrome.cast.Receiver; senderApps: Array<chrome.cast.SenderApplication>; namespaces: Array<{ name: string }>; media: Array<chrome.cast.media.Media>; status: chrome.cast.SessionStatus; statusText: string | null; transportId: string; /** * @param newLevel * @param successCallback * @param errorCallback */ setReceiverVolumeLevel( newLevel: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param muted * @param successCallback * @param errorCallback */ setReceiverMuted( muted: boolean, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param successCallback * @param errorCallback */ leave(successCallback: Function, errorCallback: (error: chrome.cast.Error) => void): void; /** * @param successCallback * @param errorCallback */ stop(successCallback: Function, errorCallback: (error: chrome.cast.Error) => void): void; /** * @param namespace * @param message * @param successCallback * @param errorCallback */ sendMessage( namespace: string, message: string | object, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param listener */ addUpdateListener(listener: (isAlive: boolean) => void): void; /** * @param listener */ removeUpdateListener(listener: (isAlive: boolean) => void): void; /** * @param namespace * @param listener */ addMessageListener(namespace: string, listener: (namespace: string, message: string) => void): void; /** * @param namespace * @param listener */ removeMessageListener(namespace: string, listener: (namespace: string, message: string) => void): void; /** * @param listener */ addMediaListener(listener: (media: chrome.cast.media.Media) => void): void; /** * @param listener */ removeMediaListener(listener: (media: chrome.cast.media.Media) => void): void; /** * @param loadRequest * @param successCallback * @param errorCallback */ loadMedia( loadRequest: chrome.cast.media.LoadRequest, successCallback: (media: chrome.cast.media.Media) => void, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param queueLoadRequest * @param successCallback * @param errorCallback */ queueLoad( queueLoadRequest: chrome.cast.media.QueueLoadRequest, successCallback: (media: chrome.cast.media.Media) => void, errorCallback: (error: chrome.cast.Error) => void, ): void; } export class Receiver { /** * @param label * @param friendlyName * @param opt_capabilities * @param opt_volume * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver */ constructor( label: string, friendlyName: string, capabilities?: Array<chrome.cast.Capability>, volume?: chrome.cast.Volume, ); label: string; friendlyName: string; capabilities: Array<chrome.cast.Capability>; volume: chrome.cast.Volume; receiverType: chrome.cast.ReceiverType; displayStatus: chrome.cast.ReceiverDisplayStatus; } export class ReceiverDisplayStatus { /** * @param statusText * @param appImages * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus */ constructor(statusText: string, appImages: Array<chrome.cast.Image>); statusText: string; appImages: Array<chrome.cast.Image>; } export class Volume { /** * @param opt_level * @param opt_muted * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Volume */ constructor(level?: number, muted?: boolean); level: number | null; muted: boolean | null; } } declare namespace chrome.cast.media { export var DEFAULT_MEDIA_RECEIVER_APP_ID: string; /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.MediaCommand */ export enum MediaCommand { PAUSE = 'pause', SEEK = 'seek', STREAM_VOLUME = 'stream_volume', STREAM_MUTE = 'stream_mute', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.MetadataType */ export enum MetadataType { GENERIC, TV_SHOW, MOVIE, MUSIC_TRACK, PHOTO, } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.PlayerState */ export enum PlayerState { IDLE = 'IDLE', PLAYING = 'PLAYING', PAUSED = 'PAUSED', BUFFERING = 'BUFFERING', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.ResumeState */ export enum ResumeState { PLAYBACK_START = 'PLAYBACK_START', PLAYBACK_PAUSE = 'PLAYBACK_PAUSE', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.StreamType */ export enum StreamType { BUFFERED = 'BUFFERED', LIVE = 'LIVE', OTHER = 'OTHER', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.IdleReason */ export enum IdleReason { CANCELLED = 'CANCELLED', INTERRUPTED = 'INTERRUPTED', FINISHED = 'FINISHED', ERROR = 'ERROR', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.RepeatMode */ export enum RepeatMode { OFF = 'REPEAT_OFF', ALL = 'REPEAT_ALL', SINGLE = 'REPEAT_SINGLE', ALL_AND_SHUFFLE = 'REPEAT_ALL_AND_SHUFFLE', } export class QueueItem { /** * @param mediaInfo * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueItem */ constructor(mediaInfo: chrome.cast.media.MediaInfo); activeTrackIds: Array<Number>; autoplay: boolean; customData: Object; itemId: number; media: chrome.cast.media.MediaInfo; preloadTime: number; startTime: number; } export class QueueLoadRequest { /** * @param items * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueLoadRequest */ constructor(items: Array<chrome.cast.media.QueueItem>); customData: Object; items: Array<chrome.cast.media.QueueItem>; repeatMode: chrome.cast.media.RepeatMode; startIndex: number; } export class QueueInsertItemsRequest { /** * @param itemsToInsert * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueInsertItemsRequest */ constructor(itemsToInsert: Array<chrome.cast.media.QueueItem>); customData: Object; insertBefore: number; items: Array<chrome.cast.media.QueueItem>; } export class QueueRemoveItemsRequest { /** * @param itemIdsToRemove * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueRemoveItemsRequest */ constructor(itemIdsToRemove: Array<number>); customData: Object; itemIds: Array<number>; } export class QueueReorderItemsRequest { /** * @param itemIdsToReorder * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueReorderItemsRequest */ constructor(itemIdsToReorder: Array<number>); customData: Object; insertBefore: number; itemIds: Array<number>; } export class QueueUpdateItemsRequest { /** * @param itemsToUpdate * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueUpdateItemsRequest */ constructor(itemsToUpdate: Array<chrome.cast.media.QueueItem>); customData: Object; item: Array<chrome.cast.media.QueueItem>; } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TrackType */ export enum TrackType { TEXT = 'TEXT', AUDIO = 'AUDIO', VIDEO = 'VIDEO', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackType */ export enum TextTrackType { SUBTITLES = 'SUBTITLES', CAPTIONS = 'CAPTIONS', DESCRIPTIONS = 'DESCRIPTIONS', CHAPTERS = 'CHAPTERS', METADATA = 'METADATA', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackEdgeType */ export enum TextTrackEdgeType { NONE = 'NONE', OUTLINE = 'OUTLINE', DROP_SHADOW = 'DROP_SHADOW', RAISED = 'RAISED', DEPRESSED = 'DEPRESSED', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackWindowType */ export enum TextTrackWindowType { NONE = 'NONE', NORMAL = 'NORMAL', ROUNDED_CORNERS = 'ROUNDED_CORNERS', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackFontGenericFamily */ export enum TextTrackFontGenericFamily { SANS_SERIF = 'SANS_SERIF', MONOSPACED_SANS_SERIF = 'MONOSPACED_SANS_SERIF', SERIF = 'SERIF', MONOSPACED_SERIF = 'MONOSPACED_SERIF', CASUAL = 'CASUAL', CURSIVE = 'CURSIVE', SMALL_CAPITALS = 'SMALL_CAPITALS', } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackFontStyle */ export enum TextTrackFontStyle { NORMAL = 'NORMAL', BOLD = 'BOLD', BOLD_ITALIC = 'BOLD_ITALIC', ITALIC = 'ITALIC', } export class GetStatusRequest { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest */ constructor(); customData: Object; } export class PauseRequest { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest */ constructor(); customData: Object; } export class PlayRequest { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest */ constructor(); customData: Object; } export class SeekRequest { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest */ constructor(); currentTime: number; resumeState: chrome.cast.media.ResumeState; customData: Object; } export class StopRequest { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest */ constructor(); customData: Object; } export class VolumeRequest { /** * @param volume * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.VolumeRequest */ constructor(volume: chrome.cast.Volume); volume: chrome.cast.Volume; customData: Object; } export class LoadRequest { /** * @param mediaInfo * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest */ constructor(mediaInfo: chrome.cast.media.MediaInfo); activeTrackIds: Array<number>; autoplay: boolean; currentTime: number; customData: Object; media: chrome.cast.media.MediaInfo; playbackRate?: number | undefined; } export class EditTracksInfoRequest { /** * @param opt_activeTrackIds * @param opt_textTrackStyle * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.EditTracksInfoRequest */ constructor(activeTrackIds?: Array<number>, textTrackStyle?: chrome.cast.media.TextTrackStyle); activeTrackIds: Array<number>; textTrackStyle: chrome.cast.media.TextTrackStyle; } export class GenericMediaMetadata { images: Array<chrome.cast.Image>; metadataType: chrome.cast.media.MetadataType; releaseDate: string; /** @deprecated. Use releaseDate instead. */ releaseYear: number; subtitle: string; title: string; /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; } export class MovieMediaMetadata { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata */ constructor(); images: Array<chrome.cast.Image>; metadataType: chrome.cast.media.MetadataType; releaseDate: string; /** @deprecated. Use releaseDate instead. */ releaseYear: number; subtitle: string; title: string; studio: string; /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; } export class TvShowMediaMetadata { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TvShowMediaMetadata */ constructor(); metadataType: chrome.cast.media.MetadataType; seriesTitle: string; title: string; season: number; episode: number; images: Array<chrome.cast.Image>; originalAirdate: string; /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; /** @deprecated. Use title instead. */ episodeTitle: string; /** @deprecated. Use season instead. */ seasonNumber: number; /** @deprecated. Use episode instead. */ episodeNumber: number; /** @deprecated. Use originalAirdate instead. */ releaseYear: number; } export class MusicTrackMediaMetadata { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata */ constructor(); metadataType: chrome.cast.media.MetadataType; albumName: string; title: string; albumArtist: string; artist: string; composer: string; songName: string; trackNumber: number; discNumber: number; images: Array<chrome.cast.Image>; releaseDate: string; /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; /** @deprecated. Use artist instead. */ artistName: string; /** @deprecated. Use releaseDate instead. */ releaseYear: number; } export class PhotoMediaMetadata { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PhotoMediaMetadata */ constructor(); metadataType: chrome.cast.media.MetadataType; title: string; artist: string; location: string; images: Array<chrome.cast.Image>; latitude: number; longitude: number; width: number; height: number; creationDateTime: string; /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; } export class MediaInfo { /** * @param contentId * @param contentType * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo */ constructor(contentId: string, contentType: string); contentId: string; streamType: chrome.cast.media.StreamType; contentType: string; metadata: any; duration: number; tracks: Array<chrome.cast.media.Track>; textTrackStyle: chrome.cast.media.TextTrackStyle; customData: Object; } export class Media { /** * @param sessionId * @param mediaSessionId * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Media */ constructor(sessionId: string, mediaSessionId: number); activeTrackIds: Array<number>; currentItemId: number; customData: Object; idleReason: chrome.cast.media.IdleReason | null; items: Array<chrome.cast.media.QueueItem>; liveSeekableRange?: chrome.cast.media.LiveSeekableRange | undefined; loadingItemId: number; media: chrome.cast.media.MediaInfo; mediaSessionId: number; playbackRate: number; playerState: chrome.cast.media.PlayerState; preloadedItemId: number; repeatMode: chrome.cast.media.RepeatMode; sessionId: string; supportedMediaCommands: Array<chrome.cast.media.MediaCommand>; volume: chrome.cast.Volume; /** @deprecated. Use getEstimatedTime instead */ currentTime: number; /** * @param getStatusRequest * @param successCallback * @param errorCallback */ getStatus( getStatusRequest: chrome.cast.media.GetStatusRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param playRequest * @param successCallback * @param errorCallback */ play( playRequest: chrome.cast.media.PlayRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param pauseRequest * @param successCallback * @param errorCallback */ pause( pauseRequest: chrome.cast.media.PauseRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param seekRequest * @param successCallback * @param errorCallback */ seek( seekRequest: chrome.cast.media.SeekRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param stopRequest * @param successCallback * @param errorCallback */ stop( stopRequest: chrome.cast.media.StopRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param volumeRequest * @param successCallback * @param errorCallback */ setVolume( volumeRequest: chrome.cast.media.VolumeRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param editTracksInfoRequest * @param successCallback * @param errorCallback */ editTracksInfo( editTracksInfoRequest: chrome.cast.media.EditTracksInfoRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param command * @return whether or not the receiver supports the given chrome.cast.media.MediaCommand */ supportsCommand(command: chrome.cast.media.MediaCommand): boolean; /** * @param listener */ addUpdateListener(listener: (isAlive: boolean) => void): void; /** * @param listener */ removeUpdateListener(listener: (isAlive: boolean) => void): void; /** * @return * @suppress {deprecated} Uses currentTime member to compute estimated time. */ getEstimatedTime(): number; /** * @param item * @param successCallback * @param errorCallback */ queueAppendItem( item: chrome.cast.media.QueueItem, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param queueInsertItemsRequest * @param successCallback * @param errorCallback */ queueInsertItems( queueInsertItemsRequest: chrome.cast.media.QueueInsertItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param itemId * @param successCallback * @param errorCallback */ queueJumpToItem( itemId: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param itemId * @param newIndex * @param successCallback * @param errorCallback */ queueMoveItemToNewIndex( itemId: number, newIndex: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param successCallback * @param errorCallback */ queueNext(successCallback: Function, errorCallback: (error: chrome.cast.Error) => void): void; /** * @param successCallback * @param errorCallback */ queuePrev(successCallback: Function, errorCallback: (error: chrome.cast.Error) => void): void; /** * @param itemId * @param successCallback * @param errorCallback */ queueRemoveItem( itemId: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param queueReorderItemsRequest * @param successCallback * @param errorCallback */ queueReorderItems( queueReorderItemsRequest: chrome.cast.media.QueueReorderItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param repeatMode * @param successCallback * @param errorCallback */ queueSetRepeatMode( repeatMode: chrome.cast.media.RepeatMode, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; /** * @param queueUpdateItemsRequest * @param successCallback * @param errorCallback */ queueUpdateItems( queueUpdateItemsRequest: chrome.cast.media.QueueUpdateItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void, ): void; } export class Track { /** * @param trackId * @param trackType * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Track */ constructor(trackId: number, trackType: chrome.cast.media.TrackType); trackId: number; trackContentId: string; trackContentType: string; type: chrome.cast.media.TrackType; name: string; language: string; subtype: chrome.cast.media.TextTrackType; customData: Object; } export class TextTrackStyle { /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackStyle */ constructor(); foregroundColor: string; backgroundColor: string; edgeType: chrome.cast.media.TextTrackEdgeType; edgeColor: string; windowType: chrome.cast.media.TextTrackWindowType; windowColor: string; windowRoundedCornerRadius: number; fontScale: number; fontFamily: string; fontGenericFamily: chrome.cast.media.TextTrackFontGenericFamily; fontStyle: chrome.cast.media.TextTrackFontStyle; customData: Object; } export class LiveSeekableRange { /** * @param start * @param end * @param isMovingWindow * @param isLiveDone * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LiveSeekableRange */ constructor(start?: number, end?: number, isMovingWindow?: boolean, isLiveDone?: boolean); start?: number | undefined; end?: number | undefined; isMovingWindow?: boolean | undefined; isLiveDone?: boolean | undefined; } } /** * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.timeout */ declare namespace chrome.cast.media.timeout { export var load: number; export var getStatus: number; export var play: number; export var pause: number; export var seek: number; export var stop: number; export var setVolume: number; export var editTracksInfo: number; export var queueInsert: number; export var queueLoad: number; export var queueRemove: number; export var queueReorder: number; export var queueUpdate: number; }