import type { IPlayerState, IPlayerOptions, IPlaylistOptions, IVideoOptionsById, IVideoOptionsByUrl, IPlaybackQuality, PlayerEvent, Events } from './web/models/models'; export interface YoutubePlayerPlugin { initialize(options: IPlayerOptions): Promise<{ playerReady: boolean; player: string; } | undefined>; destroy(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; /***********/ stopVideo(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; playVideo(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; pauseVideo(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; seekTo(playerId: string, seconds: number, allowSeekAhead: boolean): Promise<{ result: { method: string; value: boolean; seconds: number; allowSeekAhead: boolean; }; }>; loadVideoById(playerId: string, options: IVideoOptionsById): Promise<{ result: { method: string; value: boolean; options: IVideoOptionsById; }; }>; cueVideoById(playerId: string, options: IVideoOptionsById): Promise<{ result: { method: string; value: boolean; options: IVideoOptionsById; }; }>; loadVideoByUrl(playerId: string, options: IVideoOptionsByUrl): Promise<{ result: { method: string; value: boolean; options: IVideoOptionsByUrl; }; }>; cueVideoByUrl(playerId: string, options: IVideoOptionsByUrl): Promise<{ result: { method: string; value: boolean; options: IVideoOptionsByUrl; }; }>; /***********/ /***********/ cuePlaylist(playerId: string, playlistOptions: IPlaylistOptions): Promise<{ result: { method: string; value: boolean; }; }>; loadPlaylist(playerId: string, playlistOptions: IPlaylistOptions): Promise<{ result: { method: string; value: boolean; }; }>; /***********/ /***********/ nextVideo(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; previousVideo(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; playVideoAt(playerId: string, index: number): Promise<{ result: { method: string; value: boolean; }; }>; /***********/ /***********/ mute(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; unMute(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; isMuted(playerId: string): Promise<{ result: { method: string; value: boolean; }; }>; setVolume(playerId: string, volume: number): Promise<{ result: { method: string; value: number; }; }>; getVolume(playerId: string): Promise<{ result: { method: string; value: number; }; }>; /***********/ /***********/ setSize(playerId: string, width: number, height: number): Promise<{ result: { method: string; value: { width: number; height: number; }; }; }>; /***********/ /***********/ getPlaybackRate(playerId: string): Promise<{ result: { method: string; value: number; }; }>; setPlaybackRate(playerId: string, suggestedRate: number): Promise<{ result: { method: string; value: boolean; }; }>; getAvailablePlaybackRates(playerId: string): Promise<{ result: { method: string; value: number[]; }; }>; /***********/ /***********/ setLoop(playerId: string, loopPlaylists: boolean): Promise<{ result: { method: string; value: boolean; }; }>; setShuffle(playerId: string, shufflePlaylist: boolean): Promise<{ result: { method: string; value: boolean; }; }>; /***********/ /***********/ getVideoLoadedFraction(playerId: string): Promise<{ result: { method: string; value: number; }; }>; getPlayerState(playerId: string): Promise<{ result: { method: string; value: number; }; }>; getAllPlayersEventsState(): Promise<{ result: { method: string; value: Map; }; }>; getCurrentTime(playerId: string): Promise<{ result: { method: string; value: number; }; }>; toggleFullScreen(playerId: string, isFullScreen: boolean | null | undefined): Promise<{ result: { method: string; value: boolean | null | undefined; }; }>; /***********/ /***********/ getPlaybackQuality(playerId: string): Promise<{ result: { method: string; value: IPlaybackQuality; }; }>; setPlaybackQuality(playerId: string, suggestedQuality: IPlaybackQuality): Promise<{ result: { method: string; value: boolean; }; }>; getAvailableQualityLevels(playerId: string): Promise<{ result: { method: string; value: IPlaybackQuality[]; }; }>; /***********/ /***********/ getDuration(playerId: string): Promise<{ result: { method: string; value: number; }; }>; getVideoUrl(playerId: string): Promise<{ result: { method: string; value: string; }; }>; getVideoEmbedCode(playerId: string): Promise<{ result: { method: string; value: string; }; }>; /***********/ /***********/ getPlaylist(playerId: string): Promise<{ result: { method: string; value: string[]; }; }>; getPlaylistIndex(playerId: string): Promise<{ result: { method: string; value: number; }; }>; /***********/ getIframe(playerId: string): Promise<{ result: { method: string; value: HTMLIFrameElement; }; }>; addEventListener(playerId: string, eventName: keyof Events, listener: (event: TEvent) => void): void; removeEventListener(playerId: string, eventName: keyof Events, listener: (event: TEvent) => void): void; }