import MainUIBlockView from './main-ui-block.view';
import { IMainUIBlockAPI, IMainUIBlock } from './types';
import { IEventEmitter } from '../../event-emitter/types';
import { IBottomBlock } from '../bottom-block/types';
import { ITopBlock } from '../top-block/types';
import { IScreen } from '../screen/types';
import { IPlayerConfig } from '../../../core/config';
import { IRootContainer } from '../../root-container/types';
import { ITooltipService } from '../core/tooltip/tooltip-service';
declare class MainUIBlock implements IMainUIBlock {
    static moduleName: string;
    static View: typeof MainUIBlockView;
    static dependencies: string[];
    private _eventEmitter;
    private _bottomBlock;
    private _topBlock;
    private _screen;
    private _tooltipService;
    private _hideTimeout;
    private _isContentShowingEnabled;
    private _isContentShown;
    private _shouldShowContent;
    private _shouldAlwaysShow;
    private _isDragging;
    private _config;
    private _unbindEvents;
    view: MainUIBlockView;
    isHidden: boolean;
    constructor(dependencies: {
        config: IPlayerConfig;
        eventEmitter: IEventEmitter;
        rootContainer: IRootContainer;
        tooltipService: ITooltipService;
        topBlock: ITopBlock;
        bottomBlock: IBottomBlock;
        screen: IScreen;
    });
    getElement(): HTMLElement;
    private _initUI;
    private _bindViewCallbacks;
    private _bindEvents;
    private _updatePlayingState;
    private get _isBlockFocused();
    private _startHideBlockTimeout;
    private _stopHideBlockTimeout;
    private _tryShowContent;
    private _onControlDragStart;
    private _onControlDragEnd;
    private _showContent;
    private _tryHideContent;
    private _hideContent;
    disableShowingContent(): void;
    enableShowingContent(): void;
    /**
     * Method for hiding main ui
     * Important! This overrides the effect of `setMainUIShouldAlwaysShow` method
     * @example
     * player.hideMainUI();
     */
    hide(): void;
    /**
     * Method for showing main ui in case it was hidden
     * @example
     * player.showMainUI();
     */
    show(): void;
    /**
     * Method for allowing main ui to be always shown despite the playback state and the cursor position
     * Important! UI would be hidden in case `hideMainUI` is called
     * @param flag - `true` for showing always
     * @example
     * player.setMainUIShouldAlwaysShow(true);
     *
     */
    setShouldAlwaysShow(flag: boolean): void;
    destroy(): void;
}
export { IMainUIBlockAPI };
export default MainUIBlock;
