import { LitElement, TemplateResult } from 'lit'; import { DiscoveryEvent } from '../../base/elements'; import { LogLevelName } from '../../base/logger'; import { Constructor } from '../../global/helpers'; import { MediaController } from '../controller'; import { MediaProviderElement } from '../provider'; import { ControlsManager } from './controls'; import { IdleManager } from './idle'; /** * Fired when the media player connects to the DOM. * * @example * ```ts * import { AudioElement, MediaPlayerConnectEvent } from '@vidstack/elements'; * * function eventHandler(event: MediaPlayerConnectEvent) { * const { element, onDisconnect } = event.detail; * * onDisconnect(() => { * // ... * }); * } * ``` */ export declare type MediaPlayerConnectEvent = DiscoveryEvent; export declare function WithMediaPlayer>(Provider: T): T & Constructor; export interface BaseMediaPlayer { readonly controller: MediaController; readonly controlsManager: ControlsManager; readonly idleManager: IdleManager; /** * Indicates whether a custom user interface should be shown for controlling the resource. If * `true`, it is expected that `controls` is set to `false` (the default) to avoid double * controls. The `controls` property refers to native controls. * * @default false */ customControls: boolean; /** * Sets the default log level throughout the player. Valid values in order of * level include `silent`, `error`, `warn`, `info` and `debug`. * * @default `silent` */ logLevel: LogLevelName; /** * The amount of time in `ms` to pass before considering the user to be idle (not active). * * @default 3000 */ idleTimeout: number; renderPlayer(): TemplateResult; renderProvider(): TemplateResult; renderUi(): TemplateResult; }