import { MediaThemeElement } from 'media-chrome/dist/media-theme-element';
import { PlayerChroming } from './model';
import { PlayerChromingDomControllerApi } from './player-chroming-dom-controller-api';
import { MediaChromeButton, MediaControlBar, MediaController, MediaTooltip } from 'media-chrome';
import { OmakaseAudioVisualization, OmakaseMarkerBar, OmakasePlayButton, OmakasePreviewThumbnail, OmakaseTimeDisplay, OmakaseTimeRange } from '../components';
import { OmakaseVolumeRange } from '../components/omakase-volume-range';
import { OmakaseMuteButton } from '../components/omakase-mute-button';
import { OmakaseDropdown } from '../components/omakase-dropdown';
import { OmakaseDropdownList } from '../components/omakase-dropdown-list';
import { OmakaseDropdownToggle } from '../components/omakase-dropdown-toggle';
import { VideoControllerApi } from '../video';
import { Subject } from 'rxjs';
import { VttAdapter } from '../common/vtt-adapter';
import { ThumbnailVttFile } from '../vtt';
import { MarkerTrackConfig } from '../video/model';
import { MarkerTrackApi } from '../api';
import { TimeRangeMarkerTrackApi } from '../api/time-range-marker-track-api';
import { DomController } from '../dom/dom-controller';
import { CaptionsRenderer } from 'media-captions';
export interface PlayerChromingDomControllerConfig {
    playerHTMLElementId: string;
    detachedPlayer: boolean;
    playerChroming: PlayerChroming;
}
export declare const PLAYER_CHROMING_DOM_CONTROLLER_CONFIG_DEFAULT: PlayerChromingDomControllerConfig;
export declare class PlayerChromingDomController extends DomController implements PlayerChromingDomControllerApi {
    protected readonly _config: PlayerChromingDomControllerConfig;
    protected readonly _vttAdapter: VttAdapter<ThumbnailVttFile>;
    protected _themeElement: MediaThemeElement;
    protected _mediaControllerElement: MediaController;
    protected readonly _divPlayer: HTMLElement;
    protected _controlBar?: MediaControlBar;
    protected _omakaseControlBar?: HTMLElement;
    protected _buttonFastRewind?: MediaChromeButton;
    protected _buttonRewind?: MediaChromeButton;
    protected _buttonForward?: MediaChromeButton;
    protected _buttonFastForward?: MediaChromeButton;
    protected _buttonAttach?: MediaChromeButton;
    protected _buttonDetach?: MediaChromeButton;
    protected _buttonPlay?: OmakasePlayButton;
    protected _buttonCloseControlBar?: MediaChromeButton;
    protected _buttonControlBarToggle?: MediaChromeButton;
    protected _timeRangeControl?: OmakaseTimeRange;
    protected _volumeRangeControls?: OmakaseVolumeRange[];
    protected _currentTimecode?: OmakaseTimeDisplay;
    protected _previewTimecode?: OmakaseTimeDisplay;
    protected _timeDuration?: OmakaseTimeDisplay;
    protected _previewThumbnail?: OmakasePreviewThumbnail;
    protected _muteButtons?: OmakaseMuteButton[];
    protected _textButton?: MediaChromeButton;
    protected _speedDropdown?: OmakaseDropdown;
    protected _audioDropdown?: OmakaseDropdown;
    protected _speedDropdownList?: OmakaseDropdownList;
    protected _audioDropdownList?: OmakaseDropdownList;
    protected _textDropdownList?: OmakaseDropdownList;
    protected _sidecarDropdownList?: OmakaseDropdownList;
    protected _audioDropdownToggle?: OmakaseDropdownToggle;
    protected _markerBar?: OmakaseMarkerBar;
    protected _audioVisualization?: OmakaseAudioVisualization;
    protected _buttonBitc?: MediaChromeButton;
    protected _buttonHelp?: MediaChromeButton;
    protected _tooltipBitc?: MediaTooltip;
    protected _divTimecode?: HTMLElement;
    protected _divBackground?: HTMLElement;
    protected _timecodeWrapper?: HTMLElement;
    protected _captions?: HTMLElement;
    protected _sectionTopRight?: HTMLElement;
    protected _previewWrapper?: HTMLElement;
    protected _divHelpMenu?: HTMLElement;
    protected _captionsRenderer?: CaptionsRenderer;
    protected _bitcEnabled: boolean;
    protected _enterPictureInPictureHandler: () => void;
    protected _leavePictureInPictureHandler: () => void;
    protected _videoController: VideoControllerApi;
    protected _videoEventBreaker$: Subject<void>;
    protected _subtitleEventBreaker$: Subject<void>;
    protected _destroyed$: Subject<void>;
    get mediaControllerElement(): MediaController;
    get themeElement(): MediaThemeElement;
    get playerChroming(): PlayerChroming;
    set playerChroming(playerChroming: PlayerChroming);
    constructor(config: PlayerChromingDomControllerConfig);
    createTemplateDom(): string;
    createSlotsDom(): string;
    initializeDomProperties(): void;
    updateControlBar(): void;
    updateBitc(): void;
    private createControlBarDom;
    private createAudioTextDropdownDom;
    private alignAudioTextDropdown;
    private getAudioTextRightOffset;
    private getVisibilityClass;
    getShadowElement<T>(querySelector: string): T;
    getShadowElements<T>(querySelector: string): T[] | undefined;
    getShadowElementByClass<T>(className: string): T;
    getShadowElementById<T>(id: string): T;
    loadThumbnailVtt(vttUrl: string): import("rxjs").Observable<void>;
    attachVideoController(videoController: VideoControllerApi): void;
    createMarkerTrack(config: MarkerTrackConfig): MarkerTrackApi;
    getProgressMarkerTrack(): TimeRangeMarkerTrackApi | undefined;
    hideStampOverlay(): void;
    destroy(): void;
    private getMainAudioOptions;
    private getSidecarOptions;
    private getUnifiedAudioOptions;
    private togglePIP;
    private getControlBarClass;
    private showCaptions;
    private hideCaptions;
}
