import * as React from 'react';
import { IndicatorRef } from '../components/Indicator/Indicator';
import { PlayerProps } from '../components/Player/Player';
import { HotKey, Shortcuts, Subtitle } from '../types';
import { VideoState } from './VideoStateContext';
interface I18nControls extends I18nField {
    play: string;
    pause: string;
    forward: string;
    backward: string;
    enableSubtitle: string;
    disableSubtitle: string;
    settings: string;
    enterFullscreen: string;
    exitFullscreen: string;
    muteVolume: string;
    unmuteVolume: string;
    sliderDragMessage: string;
}
interface I18nSettings extends I18nField {
    playbackSpeed: string;
    subtitle: string;
    quality: string;
    subtitleSettings: string;
    reset: string;
    off: string;
    none: string;
    subtitleTextStyle: string;
    subtitleBackgroundOpacity: string;
    subtitleFontOpacity: string;
    subtitleFontSize: string;
    audio: string;
}
declare type I18nField = {
    [k: string]: string | I18nField;
};
export interface I18n extends I18nField {
    controls: I18nControls;
    settings: I18nSettings;
}
export declare type Components = {
    Subtitle: React.FC;
    MobileBackwardIndicator: React.ForwardRefExoticComponent<React.RefAttributes<IndicatorRef>>;
    MobileForwardIndicator: React.ForwardRefExoticComponent<React.RefAttributes<IndicatorRef>>;
    Player: React.ForwardRefExoticComponent<PlayerProps & React.RefAttributes<HTMLVideoElement>>;
    MobileOverlay: React.FC;
    Overlay: React.FC;
    Controls: React.FC;
    MobileControls: React.FC;
};
export interface ReactVidPlayerProps extends PlayerProps {
    thumbnail?: string;
    placeholder?: string;
    i18n?: I18n;
    shortcuts?: Shortcuts;
    hotkeys?: HotKey[];
    subtitles?: Subtitle[];
    components?: Partial<Components>;
    defaultVideoState?: Pick<VideoState, 'currentAudio' | 'currentQuality' | 'currentSubtitle' | 'isSubtitleDisabled'>;
    disableVolumeSlider?: Boolean;
}
export declare const VideoPropsContext: React.Context<Required<ReactVidPlayerProps>>;
export declare const VideoPropsProvider: React.FC<Partial<ReactVidPlayerProps>>;
export declare const useVideoProps: () => Required<ReactVidPlayerProps>;
export default VideoPropsContext;
