import type { HTMLProps, RefObject, ReactElement } from "react"; interface Internationalization { tooltipsPlay?: string; tooltipsPause?: string; tooltipsMute?: string; tooltipsUnmute?: string; tooltipsSubtitles?: string; tooltipsSettings?: string; tooltipsFullscreen?: string; tooltipsExitFullscreen?: string; settingsPlaybackSpeed?: string; settingsPlaybackSpeedNormal?: string; settingsSubtitles?: string; settingsSubtitlesOff?: string; settingsQuality?: string; settingsModalOff?: string; } export interface SubtitleType { lang: string; language: string; url: string; } export type SrcType = { quality: number | string; url: string; }[] | string; export type RendererType = (ref: RefObject, props: HTMLProps & { src: string; }) => ReactElement; interface BasePlayerProps { src: SrcType; subtitles?: SubtitleType[]; dimensions?: number | { width: number | string; height: number | string; }; primaryColor?: string; poster?: string; seekDuration?: number; internationalization?: Internationalization; pictureInPicture?: boolean; keyboardShortcut?: boolean | { pause?: boolean; rewind?: boolean; forward?: boolean; fullScreen?: boolean; mute?: boolean; subtitle?: boolean; }; playerRef?: RefObject; children?: RendererType; preserve?: { volume?: boolean; playbackSpeed?: boolean; }; } interface HasPlayerKeyPlayerProps extends BasePlayerProps { playerKey: string; preserve?: BasePlayerProps["preserve"] & { watchTime?: boolean; }; } interface NoPlayerKeyPlayerProps extends BasePlayerProps { playerKey?: undefined; preserve?: BasePlayerProps["preserve"] & { watchTime?: undefined; }; } export type PlayerProps = HasPlayerKeyPlayerProps | NoPlayerKeyPlayerProps; export interface SettingsProps { settingsActive: boolean; setSettingsActive: Function; subtitles?: { lang: string; language: string; url: string; }[]; src: { quality: number | string; url: string; }[] | string; playbackSpeed: number; setPlaybackSpeed: (value: number) => void; subtitleIndex: number; setSubtitleIndex: (value: number) => void; quality: number; setQuality: (value: number) => void; internationalization?: Internationalization; } export {};