import { LitElement, type PropertyValues } from 'lit'; import { type PlayerCore } from '../core/player-core'; import type { PlayerState } from '../core/state'; import type { ProviderType, ProviderConfig, SourceDescription } from '../providers/contract'; import type { BPLiveService } from '../bplive/service'; import { VideoRenditionList } from './video-rendition-list'; import type { ReadyEvent } from '../events'; export type BPPlayerReadyEvent = ReadyEvent; declare global { interface HTMLElementTagNameMap { 'bp-player': BPPlayer; } interface HTMLElementEventMap { 'ready': BPPlayerReadyEvent; } } export declare class BPPlayer extends LitElement { protected createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; source?: SourceDescription; autoplay: boolean; defaultMuted: boolean; loop: boolean; scaling: 'letterbox' | 'crop' | 'fill'; aspectRatio?: string; config?: ProviderConfig; debug: boolean; private _playerCore; private containerRef; private providerContainer; private eventCleanup; private stateReceivers; private _mutationObserver; private _videoRenditions; private _hasDispatchedReady; get player(): PlayerCore | null; get playerState(): PlayerState | null; get bpLive(): BPLiveService | null; play(): Promise; pause(): void; get paused(): boolean; get ended(): boolean; get seeking(): boolean; get waiting(): boolean; get currentTime(): number; set currentTime(value: number); get duration(): number; get volume(): number; set volume(value: number); get muted(): boolean; set muted(value: boolean); get playbackRate(): number; set playbackRate(value: number); get readyState(): number; get buffered(): TimeRanges; get videoWidth(): number; get videoHeight(): number; get videoElement(): HTMLVideoElement | null; webkitEnterFullscreen(): void; get webkitDisplayingFullscreen(): boolean; get webkitPresentationMode(): 'inline' | 'fullscreen' | 'picture-in-picture'; get providerType(): ProviderType | null; get videoRenditions(): VideoRenditionList | null; disconnectedCallback(): void; protected firstUpdated(_changedProperties: PropertyValues): void; protected updated(changedProperties: PropertyValues): void; /** * Initialize player core once. Called in firstUpdated. */ private initPlayerCore; /** * Load source into player core. Player core handles provider switching internally. */ private loadSource; private handleMutation; private registerStateReceiver; private unregisterStateReceiver; private propagateStateToAllReceivers; private setupEventForwarding; private updateStateAttributes; private destroyPlayer; /** Update video dimension CSS variables */ updateVideoDimensions(width: number, height: number): void; /** Clear video dimension CSS variables */ private clearVideoDimensions; private getContainerClasses; private getContainerStyle; protected render(): import("lit-html").TemplateResult<1>; } //# sourceMappingURL=bp-player.d.ts.map