import { ReactiveElement } from 'lit'; import { ElementManager } from '../../../base/elements'; import { MediaController } from '../../controller'; import { HideControlsRequestEvent, ShowControlsRequestEvent } from './events'; import { ManagedControlsConnectEvent } from './ManagedControls'; export declare type ControlsManagerHost = ReactiveElement & { readonly controller: MediaController; }; /** * A registry for all media controls that: * * - Listens for new controls connecting in the DOM and adds them to the registry. * - Manages showing and hiding all controls in-sync. * - Listens for relevant requests such as `ShowControlsRequestEvent` and handles them. * - Updates `mediaContext.customControls`. */ export declare class ControlsManager extends ElementManager { protected readonly _host: ControlsManagerHost; protected static get _ScopedDiscoveryEvent(): typeof ManagedControlsConnectEvent; /** * Whether controls are currently hidden. */ get isHidden(): boolean; constructor(_host: ControlsManagerHost); protected _handleHostConnected(): void; protected _setHiddenContext(isHidden: any): void; /** * Show all controls. * * @param request */ show(request?: Event): Promise; /** * Hide all controls. * * @param request */ hide(request?: Event): Promise; /** * Wait for all controls `updateComplete` to finish. */ waitForUpdateComplete(): Promise; private _prevHiddenValue; protected _handleControlsChange(request?: Event): void; protected _handleShowControlsRequest(request: ShowControlsRequestEvent): Promise; protected _handleHideControlsRequest(request: HideControlsRequestEvent): Promise; }