import { type Constructor, type Context, DiscoveryEvent } from '@vidstack/foundation'; import { LitElement, TemplateResult } from 'lit'; import { type Ref } from 'lit/directives/ref.js'; import { MediaProviderElement } from '../provider'; /** * Holds a contextual reference to the media container element. The container simply wraps the * media provider element to match it's dimensions, so it can be used by UI components to attach * event listeners too (eg: `GestureElement`). This container sits behind ``, so * controls and other elements can safely be placed on top to prevent background events. * * ❓ The container exists because a provider is rendered dynamically, and the only API for * accessing the underlying element is via the `engine` property on `MediaProviderElement`, but * that's not guaranteed to be of type `Element`. For example, the engine for `HlsProviderElement` * is currently `HTMLMediaElement`, however, in the future it might be the underlying `hls.js` * instance. */ export declare const mediaContainerContext: MediaContainerContext; export declare type MediaContainerContext = Context>; /** * Fired when the media player connects to the DOM. * * @example * ```ts * import { AudioElement, MediaPlayerConnectEvent } from '@vidstack/player'; * * function eventHandler(event: MediaPlayerConnectEvent) { * const { element, onDisconnect } = event.detail; * * onDisconnect(() => { * // ... * }); * } * ``` */ export declare type MediaPlayerConnectEvent = DiscoveryEvent; /** * Mixes in the base styles and render methods required to convert a media provider into a * media player. */ export declare function WithMediaPlayer>(Provider: T): T & Constructor; export interface BaseMediaPlayer { renderPlayer(): TemplateResult; renderProvider(): TemplateResult; renderUi(): TemplateResult; } //# sourceMappingURL=WithMediaPlayer.d.ts.map