import { Seconds, IRange, IObservable, IError, IValueObservable } from '@vkontakte/videoplayer-shared';
import { IVolumeState, PlaybackRate } from '../../../player/types';
export interface IObservableVideo {
    playing$: IObservable<undefined>;
    pause$: IObservable<undefined>;
    canplay$: IObservable<undefined>;
    ended$: IObservable<undefined>;
    looped$: IObservable<Seconds>;
    loopExpected$: IObservable<undefined>;
    error$: IObservable<IError>;
    seeked$: IObservable<undefined>;
    seeking$: IObservable<undefined>;
    progress$: IObservable<undefined>;
    timeUpdate$: IObservable<Seconds>;
    durationChange$: IObservable<Seconds>;
    loadStart$: IObservable<void>;
    loadedMetadata$: IObservable<undefined>;
    loadedData$: IObservable<undefined>;
    isBuffering$: IObservable<boolean>;
    currentBuffer$: IObservable<IRange<Seconds>>;
    volumeState$: IObservable<IVolumeState>;
    playbackRateState$: IObservable<PlaybackRate>;
    inPiP$: IValueObservable<boolean>;
    inFullscreen$: IValueObservable<boolean>;
    enterPip$: IObservable<PictureInPictureEvent>;
    leavePip$: IObservable<PictureInPictureEvent>;
    destroy: () => void;
}
export declare const observe: (video: HTMLVideoElement) => IObservableVideo;
