/** * TypeScript definitions for Vimeo Player API * Reference: https://github.com/vimeo/player.js */ export interface VimeoPlayerOptions { id?: number; url?: string; autopause?: boolean; autoplay?: boolean; background?: boolean; byline?: boolean; color?: string; controls?: boolean; dnt?: boolean; height?: number; interactive_params?: string; keyboard?: boolean; loop?: boolean; maxheight?: number; maxwidth?: number; muted?: boolean; pip?: boolean; playsinline?: boolean; portrait?: boolean; quality?: 'auto' | '360p' | '540p' | '720p' | '1080p' | '2k' | '4k'; responsive?: boolean; speed?: boolean; texttrack?: string; title?: boolean; transparent?: boolean; width?: number; } export interface VimeoTimeEvent { duration: number; percent: number; seconds: number; } export interface VimeoTextTrack { label: string; language: string; kind: string; mode?: 'disabled' | 'showing'; } export interface VimeoQuality { label: string; id: string; active: boolean; } export interface VimeoPlaybackRate { rate: number; } export interface VimeoError { name: string; message: string; method: string; } export declare class VimeoPlayer { constructor(element: HTMLElement | string, options?: VimeoPlayerOptions); play(): Promise; pause(): Promise; getPaused(): Promise; setCurrentTime(seconds: number): Promise; getCurrentTime(): Promise; getDuration(): Promise; setPlaybackRate(playbackRate: number): Promise; getPlaybackRate(): Promise; seekTo(seconds: number): Promise; setVolume(volume: number): Promise; getVolume(): Promise; setMuted(muted: boolean): Promise; getMuted(): Promise; getQualities(): Promise; getQuality(): Promise; setQuality(quality: string): Promise; enableTextTrack(language: string, kind?: string): Promise; disableTextTrack(): Promise; getTextTracks(): Promise; getVideoUrl(): Promise; getVideoId(): Promise; getVideoTitle(): Promise; on(event: string, callback: Function): void; off(event: string, callback?: Function): void; ready(): Promise; destroy(): Promise; getElement(): HTMLElement; } export declare type VimeoEventName = 'play' | 'playing' | 'pause' | 'ended' | 'timeupdate' | 'progress' | 'seeking' | 'seeked' | 'texttrackchange' | 'chapterchange' | 'cuechange' | 'cuepoint' | 'volumechange' | 'playbackratechange' | 'bufferstart' | 'bufferend' | 'error' | 'loaded' | 'durationchange' | 'fullscreenchange' | 'qualitychange' | 'camerachange' | 'resize' | 'enterpictureinpicture' | 'leavepictureinpicture'; declare global { interface Window { Vimeo?: { Player: typeof VimeoPlayer; }; } }