import { IFullScreenAPI, IFullScreenManager } from './types';
import { IEventEmitter } from '../event-emitter/types';
import { IPlaybackEngine } from '../playback-engine/types';
import { IPlayerConfig } from '../../core/config';
import { IRootContainer } from '../root-container/types';
declare class FullScreenManager implements IFullScreenManager {
    static moduleName: string;
    static dependencies: string[];
    private _eventEmitter;
    private _engine;
    private _helper;
    private _element;
    private _exitFullScreenOnEnd;
    private _enterFullScreenOnPlay;
    private _exitFullScreenOnPause;
    private _pauseVideoOnFullScreenExit;
    private _isEnabled;
    private _unbindEvents;
    constructor({ eventEmitter, engine, rootContainer, config, }: {
        engine: IPlaybackEngine;
        eventEmitter: IEventEmitter;
        rootContainer: IRootContainer;
        config: IPlayerConfig;
    });
    private _onChange;
    private _bindEvents;
    private _exitOnEnd;
    private _enterOnPlayRequested;
    private _exitOnPauseRequested;
    private _processNextStateFromEngine;
    /**
     * Allow player try to exit full screen on pause
     * @example
     * player.play();
     * player.enableExitFullScreenOnPause();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * player.pause();
     * console.log(player.isInFullScreen) // false
     */
    enableExitFullScreenOnPause(): void;
    /**
     * Disallow player to exit full screen on pause
     * @example
     * player.play();
     * player.disableExitFullScreenOnPause();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * player.pause();
     * console.log(player.isInFullScreen) // true
     */
    disableExitFullScreenOnPause(): void;
    /**
     * Allow player try to exit full screen on end
     * @example
     * player.play();
     * player.enableExitFullScreenOnEnd();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * console.log(player.isEnded); // true
     * console.log(player.isInFullScreen) // false
     */
    enableExitFullScreenOnEnd(): void;
    /**
     * Disallow player try to exit full screen on end
     * @example
     * player.play();
     * player.disableExitFullScreenOnEnd();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * console.log(player.isEnded); // true
     * console.log(player.isInFullScreen) // true
     */
    disableExitFullScreenOnEnd(): void;
    /**
     * Allow player try to exit full screen on end
     * @example
     * player.enableEnterFullScreenOnPlay();
     * console.log(player.isInFullScreen) // false
     * player.play();
     * console.log(player.isInFullScreen) // true
     */
    enableEnterFullScreenOnPlay(): void;
    /**
     * Disallow player try to exit full screen on end
     * @example
     * player.disableEnterFullScreenOnPlay();
     * console.log(player.isInFullScreen) // false
     * player.play();
     * console.log(player.isInFullScreen) // false
     */
    disableEnterFullScreenOnPlay(): void;
    /**
     * Allow player try to exit full screen on end
     * @example
     * player.play();
     * player.enablePauseVideoOnFullScreenExit();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * player.pause();
     * console.log(player.isInFullScreen) // false
     */
    enablePauseVideoOnFullScreenExit(): void;
    /**
     * Disallow player try to exit full screen on end
     * @example
     * player.play();
     * player.enablePauseVideoOnFullScreenExit();
     * player.enterFullScreen();
     * console.log(player.isInFullScreen) // true
     * player.pause();
     * console.log(player.isInFullScreen) // true
     */
    disablePauseVideoOnFullScreenExit(): void;
    /**
     * Player would try to enter fullscreen mode.
     * Behavior of fullscreen mode on different platforms may differ.
     * @example
     * player.enterFullScreen();
     */
    enterFullScreen(): void;
    /**
     * Player would try to exit fullscreen mode.
     * @example
     * player.exitFullScreen();
     */
    exitFullScreen(): void;
    /**
     * Return true if player is in full screen
     * @example
     * console.log(player.isInFullScreen); // false
     */
    get isInFullScreen(): boolean;
    get isEnabled(): boolean;
    destroy(): void;
}
export { IFullScreenAPI };
export default FullScreenManager;
