declare module 'video-react' { type PreloadType = 'auto' | 'metadata' | 'none'; interface PlayerPropsType { children?: any; width?: string | number; height?: string | number; fluid?: boolean; // = true; muted?: boolean; // = false; playsInline?: boolean; // = false; aspectRatio?: string; // = 'auto'; className?: string; videoId?: string; startTime?: number; loop?: boolean; autoPlay?: boolean; src?: string; poster?: string; preload?: PreloadType; // = 'auto'; onLoadStart?: ReactEventHandler; onWaiting?: ReactEventHandler; onCanPlay?: ReactEventHandler; onCanPlayThrough?: ReactEventHandler; onPlaying?: ReactEventHandler; onEnded?: ReactEventHandler; onSeeking?: ReactEventHandler; onSeeked?: ReactEventHandler; onPlay?: ReactEventHandler; onPause?: ReactEventHandler; onProgress?: ReactEventHandler; onDurationChange?: ReactEventHandler; onError?: ReactEventHandler; onSuspend?: ReactEventHandler; onAbort?: ReactEventHandler; onEmptied?: ReactEventHandler; onStalled?: ReactEventHandler; onLoadedMetadata?: ReactEventHandler; onLoadedData?: ReactEventHandler; onTimeUpdate?: ReactEventHandler; onRateChange?: ReactEventHandler; onVolumeChange?: ReactEventHandler; store?: object; } class Player extends React.Component { readonly video: Video; getDefaultChildren(originalChildren): Array; getChildren(props): Array; setWidthOrHeight(style: object, name: string, value: string | number); getStyle(): object; // get redux state // { player, operation } getState(): object; // get playback rate get playbackRate(): number; // set playback rate // speed of video set playbackRate(rate: number); get muted(): boolean; set muted(val: boolean); get volume(): number; set volume(val: number); // video width get videoWidth(): number; // video height get videoHeight(): number; // play the video play(); // pause the video pause(); // Change the video source and re-load the video: load(); // Add a new text track to the video addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack; // Check if your browser can play different types of video: canPlayType(type: string): CanPlayTypeResult; // seek video by time seek(time: number); // jump forward x seconds forward(seconds: number); // jump back x seconds replay(seconds: number); // enter or exist full screen toggleFullscreen(); // subscribe to player state change subscribeToStateChange(listener: (state: any, prevState: any) => void); } interface VideoPropsType { actions?: object; player?: object; children?: any; startTime?: number; loop?: boolean; muted?: boolean; autoPlay?: boolean; playsInline?: boolean; src?: string; poster?: string; className?: string; preload?: PreloadType; crossOrigin?: string; onLoadStart?: ReactEventHandler; onWaiting?: ReactEventHandler; onCanPlay?: ReactEventHandler; onCanPlayThrough?: ReactEventHandler; onPlaying?: ReactEventHandler; onEnded?: ReactEventHandler; onSeeking?: ReactEventHandler; onSeeked?: ReactEventHandler; onPlay?: ReactEventHandler; onPause?: ReactEventHandler; onProgress?: ReactEventHandler; onDurationChange?: ReactEventHandler; onError?: ReactEventHandler; onSuspend?: ReactEventHandler; onAbort?: ReactEventHandler; onEmptied?: ReactEventHandler; onStalled?: ReactEventHandler; onLoadedMetadata?: ReactEventHandler; onLoadedData?: ReactEventHandler; onTimeUpdate?: ReactEventHandler; onRateChange?: ReactEventHandler; onVolumeChange?: ReactEventHandler; onResize?: ReactEventHandler; } class Video extends React.Component { // get all video properties getProperties(): any; // get playback rate get playbackRate(): number; // set playback rate // speed of video set playbackRate(rate: number); get muted(): boolean; set muted(val: boolean); get volume(): number; set volume(val: number); // video width get videoWidth(): number; // video height get videoHeight(): number; // play the video play(); // pause the video pause(); // Change the video source and re-load the video: load(); // Add a new text track to the video addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack; // Check if your browser can play different types of video: canPlayType(type: string): CanPlayTypeResult; // toggle play togglePlay(); // seek video by time seek(time: number); // jump forward x seconds forward(seconds: number); // jump back x seconds replay(seconds: number); // enter or exist full screen toggleFullscreen(); } interface BigPlayButtonPropsType { actions?: object; player?: object; position?: 'center' | 'left-top'; // = 'left'; className?: string; } class BigPlayButton extends React.Component {} interface LoadingSpinnerPropsType { player?: object; className?: string; } class LoadingSpinner extends React.Component {} interface PosterImagePropsType { poster?: string; player?: object; actions?: object; className?: string; } class PosterImage extends React.Component {} interface BezelPropsType { manager?: object; className?: string; } class Bezel extends React.Component {} interface ShortcutPropsType { clickable?: boolean; // = true; dblclickable?: boolean; // = true; manager?: object; actions?: object; player?: object; shortcuts?: Array; } class Shortcut extends React.Component {} interface ControlBarPropsType { children?: any; autoHide?: boolean; // = true; autoHideTime?: number; // used in Player disableDefaultControls?: boolean; disableCompletely?: boolean; // = false; className?: string; } class ControlBar extends React.Component {} interface PlayTogglePropsType { actions?: object; player?: object; className?: string; } class PlayToggle extends React.Component {} type ForwardSecondsType = 5 | 10 | 30; interface ForwardControlPropsType { actions?: object; className?: string; seconds?: ForwardSecondsType; // = 10; } class ForwardControl extends React.Component {} interface ReplayControlPropsType { actions?: object; className?: string; seconds?: ForwardSecondsType; // = 10; } class ReplayControl extends React.Component {} interface FullscreenTogglePropsType { actions?: object; player?: object; className?: string; } class FullscreenToggle extends React.Component {} interface ProgressControlPropsType { player?: object; className?: string; } class ProgressControl extends React.Component {} interface SeekBarPropsType { player?: object; mouseTime?: object; actions?: object; className?: string; } class SeekBar extends React.Component { /** * Get percentage of video played * * @return {Number} Percentage played * @method getPercent */ getPercent(): number; } interface SliderPropsType { className?: string; onMouseDown?: ReactEventHandler; onMouseMove?: ReactEventHandler; stepForward?: Function; stepBack?: Function; sliderActive?: ReactEventHandler; sliderInactive?: ReactEventHandler; onMouseUp?: ReactEventHandler; onFocus?: ReactEventHandler; onBlur?: ReactEventHandler; onClick?: ReactEventHandler; getPercent?: () => number; vertical?: boolean; children?: ReactNode; label?: string; valuenow?: string; valuetext?: string; } class Slider extends React.Component {} interface PlayProgressBarPropsType { currentTime?: number; duration?: number; percentage?: string; className?: string; } class PlayProgressBar extends React.Component {} interface LoadProgressBarPropsType { duration?: number; buffered?: object; className?: string; } const LoadProgressBar: React.FC; interface MouseTimeDisplayPropsType { duration?: number; mouseTime?: { time: number; position: number; }; className?: string; text?: string; } const MouseTimeDisplay: React.FC; interface RemainingTimeDisplayPropsType { player?: { currentTime: number; duration: number; }; className?: string; } const RemainingTimeDisplay: React.FC; interface CurrentTimeDisplayPropsType { player?: { currentTime: number; duration: number; }; className?: string; } const CurrentTimeDisplay: React.FC; interface DurationDisplayPropsType { player?: { duration: number; }; className?: string; } const DurationDisplay: React.FC; interface TimeDividerPropsType { separator?: string; className?: string; } const TimeDivider: React.FC; interface VolumeMenuButtonPropsType { player?: { volume: number; muted: boolean; }; actions?: object; vertical?: boolean; className?: string; alwaysShowVolume?: boolean; } class VolumeMenuButton extends React.Component { get volumeLevel(): number; } interface PlaybackRateMenuButtonPropsType { player?: object; actions?: object; rates?: Array; // = [2, 1.5, 1.25, 1, 0.5, 0.25]; className?: string; } class PlaybackRateMenuButton extends React.Component {} interface ClosedCaptionButtonPropsType { player?: object; actions?: object; className?: string; offMenuText?: string; // = 'Off'; showOffMenu?: boolean; // = true; kinds?: Array; // = ['captions', 'subtitles']; // `kind`s of TextTrack to look for to associate it with this menu. } class ClosedCaptionButton extends React.Component {} class PlaybackRate extends React.Component {} interface MenuButtonPropsType { inline?: boolean; items?: Array; className?: string; onSelectItem?: ReactEventHandler; children?: any; selectedIndex?: number; } class MenuButton extends React.Component {} namespace playerActions { type OPERATE = 'video-react/OPERATE'; type FULLSCREEN_CHANGE = 'video-react/FULLSCREEN_CHANGE'; type PLAYER_ACTIVATE = 'video-react/PLAYER_ACTIVATE'; type USER_ACTIVATE = 'video-react/USER_ACTIVATE'; function handleFullscreenChange( isFullscreen: boolean, ): { type: FULLSCREEN_CHANGE; isFullscreen; }; function activate( activity, ): { type: PLAYER_ACTIVATE; activity; }; function userActivate( activity, ): { type: USER_ACTIVATE; activity; }; function play(operation: { action: 'play'; source: string; }): { type: OPERATE; operation; }; function pause(operation: { action: 'pause'; source: string; }): { type: OPERATE; operation; }; function togglePlay(operation?: { action: 'toggle-play'; source: string; }): { type: OPERATE; operation; }; // seek video by time function seek( time: number, operation?: { action: 'seek'; source: string; }, ): { type: OPERATE; operation; }; // jump forward x seconds function forward( seconds: number, operation?: { action: string; source: string; }, ): { type: OPERATE; operation; }; // jump back x seconds function replay( seconds: number, operation?: { action: string; source: string; }, ): { type: OPERATE; operation; }; function changeRate( rate: number, operation?: { action: 'change-rate'; source: string; }, ): { type: OPERATE; operation; }; function changeVolume( volume: number, operation?: { action: 'change-volume'; source: string; }, ): { type: OPERATE; operation; }; function mute( muted: boolean, operation?: { action: 'muted' | 'unmuted'; source: string; }, ): { type: OPERATE; operation; }; function toggleFullscreen(player): { type: string; [key: string]: any }; } namespace videoActions { type LOAD_START = 'video-react/LOAD_START'; type CAN_PLAY = 'video-react/CAN_PLAY'; type WAITING = 'video-react/WAITING'; type CAN_PLAY_THROUGH = 'video-react/CAN_PLAY_THROUGH'; type PLAYING = 'video-react/PLAYING'; type PLAY = 'video-react/PLAY'; type PAUSE = 'video-react/PAUSE'; type END = 'video-react/END'; type SEEKING = 'video-react/SEEKING'; type SEEKED = 'video-react/SEEKED'; type SEEKING_TIME = 'video-react/SEEKING_TIME'; type END_SEEKING = 'video-react/END_SEEKING'; type DURATION_CHANGE = 'video-react/DURATION_CHANGE'; type TIME_UPDATE = 'video-react/TIME_UPDATE'; type VOLUME_CHANGE = 'video-react/VOLUME_CHANGE'; type PROGRESS_CHANGE = 'video-react/PROGRESS_CHANGE'; type RATE_CHANGE = 'video-react/RATE_CHANGE'; type SUSPEND = 'video-react/SUSPEND'; type ABORT = 'video-react/ABORT'; type EMPTIED = 'video-react/EMPTIED'; type STALLED = 'video-react/STALLED'; type LOADED_META_DATA = 'video-react/LOADED_META_DATA'; type LOADED_DATA = 'video-react/LOADED_DATA'; type RESIZE = 'video-react/RESIZE'; type ERROR = 'video-react/ERROR'; type ACTIVATE_TEXT_TRACK = 'video-react/ACTIVATE_TEXT_TRACK'; function handleLoadStart( videoProps, ): { type: LOAD_START; videoProps; }; function handleCanPlay( videoProps, ): { type: CAN_PLAY; videoProps; }; function handleWaiting( videoProps, ): { type: WAITING; videoProps; }; function handleCanPlayThrough( videoProps, ): { type: CAN_PLAY_THROUGH; videoProps; }; function handlePlaying( videoProps, ): { type: PLAYING; videoProps; }; function handlePlay( videoProps, ): { type: PLAY; videoProps; }; function handlePause( videoProps, ): { type: PAUSE; videoProps; }; function handleEnd( videoProps, ): { type: END; videoProps; }; function handleSeeking( videoProps, ): { type: SEEKING; videoProps; }; function handleSeeked( videoProps, ): { type: SEEKED; videoProps; }; function handleDurationChange( videoProps, ): { type: DURATION_CHANGE; videoProps; }; function handleTimeUpdate( videoProps, ): { type: TIME_UPDATE; videoProps; }; function handleVolumeChange( videoProps, ): { type: VOLUME_CHANGE; videoProps; }; function handleProgressChange( videoProps, ): { type: PROGRESS_CHANGE; videoProps; }; function handleRateChange( videoProps, ): { type: RATE_CHANGE; videoProps; }; function handleSuspend( videoProps, ): { type: SUSPEND; videoProps; }; function handleAbort( videoProps, ): { type: ABORT; videoProps; }; function handleEmptied( videoProps, ): { type: EMPTIED; videoProps; }; function handleStalled( videoProps, ): { type: STALLED; videoProps; }; function handleLoadedMetaData( videoProps, ): { type: LOADED_META_DATA; videoProps; }; function handleLoadedData( videoProps, ): { type: LOADED_DATA; videoProps; }; function handleResize( videoProps, ): { type: RESIZE; videoProps; }; function handleError( videoProps, ): { type: ERROR; videoProps; }; function handleSeekingTime( time, ): { type: SEEKING_TIME; time; }; function handleEndSeeking( time, ): { type: END_SEEKING; time; }; function activateTextTrack( textTrack, ): { type: ACTIVATE_TEXT_TRACK; textTrack; }; } function playerReducer(state: any, action: any); function operationReducer(state: any, action: any); }