import type { StreamPlayerOptions, StreamPlayerEvents, Level, PlayerConfig, AudioTrack, SubtitleTrack } from './types'; export declare class ShakaStreamPlayer { private static readonly BASE_URL; private static readonly VERSION; private container; private videoElement; private player; private analyticsCollector; private sessionRegistration; private eventListeners; private streamCode; private options; private timer; private qualityLevels; private audioTracks; private subtitleTracks; private resource?; private playerConfig?; private edge_id?; private sessionId?; private mediaSessionSig?; private adsContainer?; private adsPlayer?; private currentVariantTrack; private requestFilter?; private constructor(); static create(options: StreamPlayerOptions): Promise; initialize(): Promise; private setupShakaEvents; private setupVideoEvents; private startTimer; private cancelTimer; private updateProgress; /** * Emit buffer update event using native video element's buffered property * Since Shaka Player doesn't emit buffer events like HLS.js, we use the HTML5 video element */ private emitBufferUpdate; private setVideoPoster; load(streamUrl: string): Promise; private extractQualityLevels; play(): Promise; rewind(offset?: number): void; fastForward(offset?: number): void; pause(): void; seek(time: number): void; toggleMute(): void; switchLevel(level: number): void; seekToLive(): void; setVolume(volume: number): void; getVolume(): number; setPlaybackRate(rate: number): void; getPlaybackRate(): number; isMuted(): boolean; isAutolevelEnabled(): boolean; getLevels(): Level[]; getCurrentLevel(): number; getAudioTracks(): AudioTrack[]; getCurrentAudioTrack(): number; setAudioTrack(trackId: number): void; getSubtitleTracks(): SubtitleTrack[]; getCurrentSubtitleTrack(): number; setSubtitleTrack(trackId: number): void; getPlayerConfig(): PlayerConfig | undefined; on(event: K, callback: StreamPlayerEvents[K]): void; off(event: K, callback: StreamPlayerEvents[K]): void; private emit; destroy(): void; /** * Handle and map errors to unified error format */ private handleError; private createAdsContainer; private initializeAds; private setupAdsPlayerEvents; private getDocumentReferer; /** * Apply auto level capping based on configured constraints */ private applyAutoLevelCapping; /** * Apply player configuration settings from backend */ private applyPlayerConfig; } //# sourceMappingURL=ShakaStreamPlayer.d.ts.map