initial commit
This commit is contained in:
69
youtube.d.ts
vendored
Normal file
69
youtube.d.ts
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
// 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 {};
|
Reference in New Issue
Block a user