interface PlayerEvent { videoId: string; videoDurationSeconds: number; } export interface PlaybackEvent extends PlayerEvent { segmentStartSeconds: number; segmentEndSeconds: number; videoIndex?: number; playerId: string; } export interface PlayerInteractedWithEvent extends PlayerEvent { currentTime: number; subtype: T; playerId: string; payload: InteractionEventPayload[T]; } export interface InteractionEventPayload { captionsEnabled: { kind: string; language: string; label: string; }; captionsLanguageChanged: { kind: string; language: string; label: string; }; captionsDisabled: EmptyObject; fullscreenEnabled: EmptyObject; fullscreenDisabled: EmptyObject; seeking: EmptyObject; seeked: EmptyObject; progress: EmptyObject; speedChanged: { speed: number; }; jumpedForward: EmptyObject; jumpedBackward: EmptyObject; muted: EmptyObject; unmuted: EmptyObject; play: EmptyObject; pause: EmptyObject; playbackStarted: EmptyObject; } interface EmptyObject { [key: string]: never; } export {};