import { LitElement, PropertyValues } from 'lit'; import type { PlayerCore } from '../core/player-core'; import type { ProviderConfig, SourceDescription } from '../providers/contract'; import { type ReadyEvent } from '../events'; import 'media-chrome'; import 'media-chrome/menu'; import './bp-player'; import './bp-error-display'; import type { BPLiveService } from '../bplive/service'; export type BPDefaultUIReadyEvent = ReadyEvent; declare global { interface HTMLElementTagNameMap { 'bp-default-ui': BPDefaultUI; } } /** * Complete player UI with controls, loading states, and error handling. * Uses light DOM for NanoPlayer compatibility. */ export declare class BPDefaultUI extends LitElement { protected createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; disconnectedCallback(): void; source?: SourceDescription; autoplay: boolean; muted: boolean; loop: boolean; poster?: string; scaling: 'letterbox' | 'crop' | 'fill'; aspectRatio?: string; config?: ProviderConfig; debug: boolean; autohide: number; hotkeys: boolean; mobile: boolean; live: boolean; /** When set, automatically adjusts aspect ratio to match the video content */ fluid: boolean; private _player; private _providerType; private _error; private _connectionState; private _showEndedOverlay; private _cleanupListeners; get player(): PlayerCore | null; get mediaController(): HTMLElement | null; get bpLive(): BPLiveService | null; private detectMobile; private _getPoster; protected firstUpdated(_changedProperties: PropertyValues): void; protected willUpdate(_changedProperties: PropertyValues): void; protected updated(_changedProperties: PropertyValues): void; /** * Sets content-type eagerly so the correct controls render on first paint, * and applies fluid dimension hints from preferredOrientation. */ private _applySourceHints; /** Update video dimension CSS variables */ private _updateVideoDimensions; /** Clear video dimension CSS variables */ private _clearVideoDimensions; private _moveSlottedContent; private setupPlayer; private setupPlayerListeners; private renderDefaultControls; protected render(): import("lit-html").TemplateResult<1>; } //# sourceMappingURL=bp-default-ui.d.ts.map