import { CrossOriginValue, INativeDebugInfo, IVideoOutput, PlayableMediaSource, PreloadType } from '../../types';
import { IPlaybackAdapter, IPlaybackAdapterClass } from './adapters/types';
import { IEventEmitter } from '../../../event-emitter/types';
import { IPlayerConfig } from '../../../../core/config';
import { EngineState } from '../../../../constants';
export default class NativeOutput implements IVideoOutput {
    static moduleName: string;
    static dependencies: string[];
    private _video;
    private _availablePlaybackAdapters;
    private _eventEmitter;
    private _stateEngine;
    private _nativeEventsBroadcaster;
    private _adapterStrategy;
    private _playPromise;
    private _pauseRequested;
    constructor({ eventEmitter, config, availablePlaybackAdapters, }: {
        eventEmitter: IEventEmitter;
        config: IPlayerConfig;
        availablePlaybackAdapters: IPlaybackAdapterClass[];
    });
    private _createVideoTag;
    play(): void;
    pause(): void;
    setMute(mute: boolean): void;
    setAutoplay(isAutoplay: boolean): void;
    setInline(isPlaysinline: boolean): void;
    setCrossOrigin(crossOrigin?: CrossOriginValue): void;
    setCurrentTime(time: number): void;
    setVolume(volume: number): void;
    setLoop(isLoop: boolean): void;
    setPlaybackRate(rate: number): void;
    setPreload(preload?: PreloadType): void;
    setSrc(src?: PlayableMediaSource, callback?: Function): void;
    syncWithLive(): void;
    getElement(): HTMLVideoElement;
    private _getViewDimensions;
    get volume(): number;
    get currentTime(): number;
    get duration(): number;
    get autoplay(): boolean;
    get crossOrigin(): CrossOriginValue;
    get playbackRate(): number;
    get buffered(): TimeRanges;
    get preload(): PreloadType;
    get isPaused(): boolean;
    get isMuted(): boolean;
    get isEnded(): boolean;
    get isInline(): boolean;
    get isAutoplay(): boolean;
    get isLoop(): boolean;
    get isMetadataLoaded(): boolean;
    get isDynamicContent(): boolean;
    get isDynamicContentEnded(): boolean;
    get isSeekAvailable(): boolean;
    get isSyncWithLive(): boolean;
    get isPreloadActive(): boolean;
    get isAutoPlayActive(): boolean;
    get videoHeight(): number;
    get videoWidth(): number;
    get src(): PlayableMediaSource;
    get currentState(): EngineState;
    get attachedAdapter(): IPlaybackAdapter;
    getDebugInfo(): INativeDebugInfo;
    destroy(): void;
}
