/** * 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;