import { ReactiveController, ReactiveControllerHost } from 'lit'; import { ExtractEventInit } from '../../base/events'; import { Logger } from '../../base/logger'; import { RequestQueue } from '../../base/queue'; import { MediaRequestEvents } from '../request.events'; /** * A simple facade for dispatching media requests to the nearest media controller. * * @example * ```ts * import { MediaRemoteControl } from '@vidstack/elements'; * * class MyElement extends HTMLElement { * mediaRemoteControl = new MediaRemoteControl(this); * * sendPlayRequest() { * this.mediaRemoteControl.play(); * } * } * ``` */ export declare class MediaRemoteControl implements ReactiveController { protected readonly _host: ReactiveControllerHost; protected _ref?: Element; protected readonly _connectedQueue: RequestQueue; protected readonly _logger: Logger; constructor(_host: ReactiveControllerHost); hostConnected(): void; hostDisconnected(): void; /** * Set a reference to a DOM element that this controller will use as the target for dispatching * media requests from. */ setRef(newRef?: Element): void; play(event?: Event): void; pause(event?: Event): void; mute(event?: Event): void; unmute(event?: Event): void; enterFullscreen(event?: Event): void; exitFullscreen(event?: Event): void; seeking(time: number, event?: Event): void; seek(time: number, event?: Event): void; changeVolume(volume: number, event?: Event): void; showControls(event?: Event): void; hideControls(event?: Event): void; resumeIdleTracking(event?: Event): void; pauseIdleTracking(event?: Event): void; protected _dispatchRequest(type: EventType, eventInit: ExtractEventInit): void; }