/**
* Video Player Web Component
*
* Custom Element wrapper for the video player.
* Provides framework-agnostic integration via standard Web Components API.
*
* Usage:
*
*/
import { VideoPlayer } from './components/VideoPlayer';
import type { PlayerConfig, VideoSource, PlayerTheme, WatermarkConfig, AntiPiracyTextConfig, QualityConfig, ControlsConfig, AnalyticsConfig, LMSProgressConfig, PlayerState, QualityLevel, SubtitleTrack, Chapter } from './types';
/**
* Custom Element for Video Player
*/
declare const SSRHTMLElement: typeof HTMLElement;
export declare class VideoPlayerElement extends SSRHTMLElement {
private player;
private initialized;
private pendingConfig;
private _config;
static get observedAttributes(): readonly string[];
constructor();
connectedCallback(): void;
disconnectedCallback(): void;
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
/**
* Initialize player with configuration (for programmatic usage)
*/
initialize(config: PlayerConfig): void;
/**
* Initialize the player with current attributes
*/
private initializePlayer;
/**
* Build configuration from HTML attributes
*/
private buildConfigFromAttributes;
/**
* Handle attribute changes
*/
private handleAttributeChange;
play(): Promise;
pause(): void;
togglePlay(): void;
seek(time: number): void;
setVolume(volume: number): void;
toggleMute(): void;
setPlaybackRate(rate: number): void;
toggleFullscreen(): void;
enterFullscreen(): Promise;
exitFullscreen(): Promise;
togglePip(): void;
enterPip(): Promise;
exitPip(): Promise;
getState(): PlayerState;
getQualityLevels(): QualityLevel[];
setQuality(level: QualityLevel | 'auto'): void;
getSubtitleTracks(): SubtitleTrack[];
setSubtitle(track: SubtitleTrack | null): void;
loadSource(source: VideoSource): void;
updateConfig(config: Partial): void;
destroy(): void;
next(): void;
prev(): void;
goTo(index: number): void;
on(event: string, handler: Function): void;
off(event: string, handler: Function): void;
once(event: string, handler: Function): void;
setMuted(muted: boolean): void;
setSpeed(rate: number): void;
getCurrentTime(): number;
getDuration(): number;
getVolume(): number;
isPaused(): boolean;
getQuality(): string | number;
get sessionId(): string;
get currentTime(): number;
set currentTime(value: number);
get duration(): number;
get paused(): boolean;
get volume(): number;
set volume(value: number);
get muted(): boolean;
set muted(value: boolean);
get playbackRate(): number;
set playbackRate(value: number);
get isFullscreen(): boolean;
get isPip(): boolean;
get src(): string;
set src(value: string);
get sourceType(): string;
set sourceType(value: string);
get 'source-type'(): string;
set 'source-type'(value: string);
get theme(): PlayerTheme;
set theme(value: PlayerTheme);
get watermark(): WatermarkConfig;
set watermark(value: WatermarkConfig);
get antiPiracyText(): AntiPiracyTextConfig;
set antiPiracyText(value: AntiPiracyTextConfig);
get 'anti-piracy-text'(): AntiPiracyTextConfig;
set 'anti-piracy-text'(value: AntiPiracyTextConfig);
get antipiracytext(): AntiPiracyTextConfig;
set antipiracytext(value: AntiPiracyTextConfig);
get antipiracyText(): AntiPiracyTextConfig;
set antipiracyText(value: AntiPiracyTextConfig);
get controls(): ControlsConfig;
set controls(value: ControlsConfig);
get quality(): QualityConfig;
set quality(value: QualityConfig);
get analytics(): AnalyticsConfig;
set analytics(value: AnalyticsConfig);
get lmsProgress(): LMSProgressConfig;
set lmsProgress(value: LMSProgressConfig);
get keyboardShortcuts(): boolean;
set keyboardShortcuts(value: boolean);
get 'keyboard-shortcuts'(): boolean;
set 'keyboard-shortcuts'(value: boolean);
get accentColor(): string;
set accentColor(value: string);
get 'accent-color'(): string;
set 'accent-color'(value: string);
/**
* Set video chapters
*/
setChapters(chapters: Chapter[]): void;
}
/**
* Register the custom element
*/
export declare function registerVideoPlayerElement(tagName?: string): void;
/**
* Global SDK interface for utilities
*/
export declare const VidstreamPlayer: {
/**
* Get SDK version
*/
version: string;
/**
* Create player instance programmatically
*/
create(container: HTMLElement | string, config: PlayerConfig): VideoPlayer;
/**
* Register the web component with a custom tag name
*/
register(tagName?: string): void;
};
export default VideoPlayerElement;