70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
|
|
// A type for the global YT object and its Player constructor
|
|
declare global {
|
|
interface Window {
|
|
YT?: {
|
|
Player: new (frameId: string | HTMLDivElement, options: YT.PlayerOptions) => YT.Player;
|
|
// Add other YT properties if needed, like enums for player states
|
|
PlayerState?: {
|
|
ENDED: number;
|
|
PLAYING: number;
|
|
PAUSED: number;
|
|
BUFFERING: number;
|
|
CUED: number;
|
|
};
|
|
};
|
|
onYouTubeIframeAPIReady?: () => void;
|
|
}
|
|
}
|
|
|
|
// Minimal YT.Player and YT.PlayerOptions types (can be expanded)
|
|
declare namespace YT {
|
|
interface Player {
|
|
playVideo: () => void;
|
|
pauseVideo: () => void;
|
|
stopVideo: () => void;
|
|
mute: () => void;
|
|
unMute: () => void;
|
|
isMuted: () => boolean;
|
|
getVolume: () => number;
|
|
setVolume: (volume: number) => void;
|
|
getPlayerState: () => number;
|
|
addEventListener: <E extends keyof Events>(event: E, listener: Events[E]) => void;
|
|
destroy: () => void;
|
|
// Add more methods as needed
|
|
getIframe: () => HTMLIFrameElement;
|
|
getVideoUrl: () => string;
|
|
loadVideoById: (videoId: string, startSeconds?: number, suggestedQuality?: string) => void;
|
|
cueVideoById: (videoId: string, startSeconds?: number, suggestedQuality?: string) => void;
|
|
}
|
|
|
|
interface PlayerOptions {
|
|
height?: string;
|
|
width?: string;
|
|
videoId?: string;
|
|
playerVars?: PlayerVars;
|
|
events?: Events;
|
|
}
|
|
|
|
interface PlayerVars {
|
|
autoplay?: 0 | 1;
|
|
controls?: 0 | 1 | 2;
|
|
enablejsapi?: 0 | 1;
|
|
origin?: string;
|
|
rel?: 0 | 1;
|
|
showinfo?: 0 | 1;
|
|
// Add more playerVars as needed
|
|
[key: string]: any; // Allow other player vars
|
|
}
|
|
|
|
interface Events {
|
|
onReady?: (event: { target: Player }) => void;
|
|
onStateChange?: (event: { data: number; target: Player }) => void;
|
|
onError?: (event: { data: number; target: Player }) => void;
|
|
// Add more events as needed
|
|
}
|
|
}
|
|
|
|
// Add this export to make the file a module
|
|
export {};
|