import BaseTech, { IVideoLevel } from './BaseTech'; import { IWebPlayerOptions } from '../WebPlayer'; export interface InterstitialAsset { identifier: string; uri: string; duration?: number; startOffset: number; } export interface InterstitialEvent { identifier: string; startTime: number; resumeTime: number; duration?: number; assetList: InterstitialAsset[]; dateRange?: { attr: Record; }; assetListUrl?: string; } export interface InterstitialTrackingData { event: InterstitialEvent; asset?: InterstitialAsset; progress?: number; trackingUrls?: { start?: string[]; firstQuartile?: string[]; midpoint?: string[]; thirdQuartile?: string[]; complete?: string[]; }; } export default class HlsJsTech extends BaseTech { name: string; static isSupported(): boolean; private hls; private isLiveFlag; private playlistDuration; private currentInterstitialAsset; private currentInterstitialEvent; private interstitialTrackingFired; private interstitialAssetStartTime; private currentInterstitialSessionId; private trackingUrlsCache; private isPlayingAd; private assetListSignalingCache; constructor(opts: IWebPlayerOptions); load(src: string): Promise; private removeUnsupportedLevels; protected onTimeUpdate(): void; private onLevelLoaded; getVideoLevels(): IVideoLevel[]; protected onBitrateChange(): void; protected onErrorEvent(event: any, data: any): void; get currentLevel(): IVideoLevel; set currentLevel(level: IVideoLevel); get currentTime(): number; set currentTime(newpos: number); get isLive(): boolean; get isPlayingInterstitial(): boolean; get audioTrack(): string; set audioTrack(id: string); get audioTracks(): { id: string; label: string; language: string; enabled: boolean; }[]; get textTrack(): string; set textTrack(id: string); get textTracks(): { id: string; label: string; language: string; enabled: boolean; }[]; seekToLive(): void; errorFormat(data: any): { category: any; code: string; message: string; data: any; }; /** * Capture signaling data when HLS.js loads asset list (no duplicate fetch needed) */ private onAssetListLoaded; private onInterstitialStarted; private onInterstitialEnded; private onInterstitialAssetStarted; private onInterstitialAssetEnded; private fetchTrackingFromAssetListUrl; private extractTrackingUrls; private fireTrackingUrls; private checkInterstitialQuartiles; destroy(): void; }