import React, { CSSProperties } from "react"; import "./video-audio-player.css"; export type preload = "auto" | "metadata" | "none" | ""; export type VideoControlOptionsToRemove = "center-playPause-button" | "bottom-playPause-button" | "pip" | "progress" | "current-time" | "fullscreen" | "duration" | "mute" | "volume" | "playbackRate" | "skip-forward-backward" | "captions"; export type VideoMimeType = "video/mp4" | "video/webm" | "video/ogg" | "video/quicktime"; export type TrackKind = "subtitles" | "captions" | "descriptions" | "chapters" | "metadata"; export type sources = { src: string; type: VideoMimeType; }[]; export interface Track { src: string; kind: TrackKind; label: string; srclang: string; default?: boolean; } export interface VideoPlayerProps { src?: string; accentColor?: string; customErrorMessage?: string; controls?: boolean; autoPlay?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; poster?: string; preload?: preload; width?: string | number; height?: string | number; className?: string; style?: CSSProperties; seekTo?: number; defaultPlaybackRate?: number; defaultVolume?: number; sources?: sources; controlsToExclude?: VideoControlOptionsToRemove[]; disableDoubleClick?: boolean; doubleClickToFullscreen?: boolean; showDownloadButton?: boolean; disableShortcuts?: boolean; tracks?: Track[]; onProgress?: (currentTime: number, duration: number) => void; onSeeked?: (time: number) => void; onSeeking?: (time: number) => void; onVolumeChange?: (volume: number) => void; onPlaybackRateChange?: (rate: number) => void; onMuteChange?: (isMuted: boolean) => void; onFullscreenChange?: (isFullscreen: boolean) => void; onPictureInPictureChange?: (isPictureInPicture: boolean) => void; onDownloadStart?: () => void; onDownloadEnd?: (success: boolean) => void; onPlay?: () => void; onPause?: () => void; onEnded?: () => void; onError?: () => void; onReady?: () => void; onDuration?: (duration: number) => void; getVideoRef?: (ref: HTMLVideoElement | null) => void; onTrackChange?: (track: TextTrack | null) => void; generatePosterAt?: number; } declare const VideoPlayer: ({ src, accentColor, customErrorMessage, controls, autoPlay, muted, loop, playsInline, poster, width, height, className, style, preload, seekTo, defaultPlaybackRate, defaultVolume, sources, controlsToExclude, disableDoubleClick, doubleClickToFullscreen, showDownloadButton, disableShortcuts, onProgress, onSeeked, onSeeking, onVolumeChange, onPlaybackRateChange, onMuteChange, onFullscreenChange, onPictureInPictureChange, onDownloadStart, onDownloadEnd, onPlay, onPause, onEnded, onError, onReady, onDuration, getVideoRef, tracks, onTrackChange, generatePosterAt, }: VideoPlayerProps) => React.JSX.Element; export default VideoPlayer;