import type { IframeMediaAdapter, IframeMediaAdapterEvents } from '@openplayerjs/core'; declare global { interface Window { YT?: { Player: new (el: HTMLElement, opts: YTPlayerOptions) => YTPlayer; PlayerState: { ENDED: 0; PLAYING: 1; PAUSED: 2; BUFFERING: 3; CUED: 5; }; }; onYouTubeIframeAPIReady?: () => void; } } type YTPlayerOptions = { videoId: string; width?: number | string; height?: number | string; /** * Override the player host. Pass `'https://www.youtube-nocookie.com'` to * embed without setting cookies on the viewer's browser. */ host?: string; playerVars?: Record; events?: { onReady?: (e: { target: YTPlayer; }) => void; onStateChange?: (e: { data: number; }) => void; onError?: (e: { data: number; }) => void; onPlaybackRateChange?: (e: { data: number; }) => void; }; }; type YTPlayer = { playVideo(): void; pauseVideo(): void; seekTo(seconds: number, allowSeekAhead: boolean): void; setVolume(volume: number): void; getVolume(): number; mute(): void; unMute(): void; isMuted(): boolean; setPlaybackRate(rate: number): void; getPlaybackRate(): number; getCurrentTime(): number; getDuration(): number; getPlayerState(): number; destroy(): void; getOption?(module: string, option: string): any; setOption?(module: string, option: string, value: any): void; }; export declare class YouTubeIframeAdapter implements IframeMediaAdapter { private player; private readonly videoId; private readonly noCookie; private readonly handlers; private iframeEl; private _ready; private _pendingPlay; constructor(options: { videoId: string; noCookie?: boolean; }); on(evt: E, cb: IframeMediaAdapterEvents[E]): void; off(evt: E, cb: IframeMediaAdapterEvents[E]): void; private emit; mount(container: HTMLElement): Promise; destroy(): void; getElement(): HTMLElement | null; play(): void; pause(): void; seekTo(seconds: number): void; /** Accepts 0..1; YT API uses 0..100. */ setVolume(volume01: number): void; /** Returns 0..1. */ getVolume(): number; mute(): void; unmute(): void; isMuted(): boolean; setPlaybackRate(rate: number): void; getPlaybackRate(): number; getCurrentTime(): number; getDuration(): number; /** Returns available YouTube caption tracks (best-effort; undocumented API). */ getAvailableCaptionTracks(): { id: string; label: string; language: string; }[]; /** Returns the active caption track language code, or null if captions are off. */ getActiveCaptionTrack(): string | null; /** Sets the active caption track by language code, or disables captions when null. */ setCaptionTrack(languageCode: string | null): void; } export {}; //# sourceMappingURL=youtubeAdapter.d.ts.map