| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105 | 
							- export declare interface AbrComponentAPI extends ComponentAPI {
 
-     firstAutoLevel: number;
 
-     forcedAutoLevel: number;
 
-     nextAutoLevel: number;
 
-     readonly bwEstimator?: EwmaBandWidthEstimator;
 
-     resetEstimator(abrEwmaDefaultEstimate: number): any;
 
- }
 
- export declare class AbrController implements AbrComponentAPI {
 
-     protected hls: Hls;
 
-     private lastLevelLoadSec;
 
-     private lastLoadedFragLevel;
 
-     private firstSelection;
 
-     private _nextAutoLevel;
 
-     private nextAutoLevelKey;
 
-     private audioTracksByGroup;
 
-     private codecTiers;
 
-     private timer;
 
-     private fragCurrent;
 
-     private partCurrent;
 
-     private bitrateTestDelay;
 
-     bwEstimator: EwmaBandWidthEstimator;
 
-     constructor(hls: Hls);
 
-     resetEstimator(abrEwmaDefaultEstimate?: number): void;
 
-     private initEstimator;
 
-     protected registerListeners(): void;
 
-     protected unregisterListeners(): void;
 
-     destroy(): void;
 
-     protected onManifestLoading(event: Events.MANIFEST_LOADING, data: ManifestLoadingData): void;
 
-     private onLevelsUpdated;
 
-     private onMaxAutoLevelUpdated;
 
-     protected onFragLoading(event: Events.FRAG_LOADING, data: FragLoadingData): void;
 
-     protected onLevelSwitching(event: Events.LEVEL_SWITCHING, data: LevelSwitchingData): void;
 
-     protected onError(event: Events.ERROR, data: ErrorData): void;
 
-     private getTimeToLoadFrag;
 
-     protected onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData): void;
 
-     private _abandonRulesCheck;
 
-     protected onFragLoaded(event: Events.FRAG_LOADED, { frag, part }: FragLoadedData): void;
 
-     protected onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
 
-     private ignoreFragment;
 
-     clearTimer(): void;
 
-     get firstAutoLevel(): number;
 
-     get forcedAutoLevel(): number;
 
-     get nextAutoLevel(): number;
 
-     private getAutoLevelKey;
 
-     private getNextABRAutoLevel;
 
-     private getStarvationDelay;
 
-     private getBwEstimate;
 
-     private findBestLevel;
 
-     set nextAutoLevel(nextLevel: number);
 
- }
 
- export declare type ABRControllerConfig = {
 
-     abrEwmaFastLive: number;
 
-     abrEwmaSlowLive: number;
 
-     abrEwmaFastVoD: number;
 
-     abrEwmaSlowVoD: number;
 
-     /**
 
-      * Default bandwidth estimate in bits/s prior to collecting fragment bandwidth samples
 
-      */
 
-     abrEwmaDefaultEstimate: number;
 
-     abrEwmaDefaultEstimateMax: number;
 
-     abrBandWidthFactor: number;
 
-     abrBandWidthUpFactor: number;
 
-     abrMaxWithRealBitrate: boolean;
 
-     maxStarvationDelay: number;
 
-     maxLoadingDelay: number;
 
- };
 
- export declare class AttrList {
 
-     [key: string]: any;
 
-     constructor(attrs: string | Record<string, any>);
 
-     get clientAttrs(): string[];
 
-     decimalInteger(attrName: string): number;
 
-     hexadecimalInteger(attrName: string): Uint8Array | null;
 
-     hexadecimalIntegerAsNumber(attrName: string): number;
 
-     decimalFloatingPoint(attrName: string): number;
 
-     optionalFloat(attrName: string, defaultValue: number): number;
 
-     enumeratedString(attrName: string): string | undefined;
 
-     bool(attrName: string): boolean;
 
-     decimalResolution(attrName: string): {
 
-         width: number;
 
-         height: number;
 
-     } | undefined;
 
-     static parseAttrList(input: string): Record<string, any>;
 
- }
 
- export declare type AudioPlaylistType = 'AUDIO';
 
- export declare type AudioSelectionOption = {
 
-     lang?: string;
 
-     assocLang?: string;
 
-     characteristics?: string;
 
-     channels?: string;
 
-     name?: string;
 
-     audioCodec?: string;
 
-     groupId?: string;
 
-     default?: boolean;
 
- };
 
- export declare class AudioStreamController extends BaseStreamController implements NetworkComponentAPI {
 
-     private videoBuffer;
 
-     private videoTrackCC;
 
-     private waitingVideoCC;
 
-     private bufferedTrack;
 
-     private switchingTrack;
 
-     private trackId;
 
-     private waitingData;
 
-     private mainDetails;
 
-     private flushing;
 
-     private bufferFlushed;
 
-     private cachedTrackLoadedData;
 
-     constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
 
-     protected onHandlerDestroying(): void;
 
-     private _registerListeners;
 
-     private _unregisterListeners;
 
-     onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
 
-     startLoad(startPosition: number): void;
 
-     doTick(): void;
 
-     clearWaitingFragment(): void;
 
-     protected resetLoadingState(): void;
 
-     protected onTickEnd(): void;
 
-     private doTickIdle;
 
-     protected getMaxBufferLength(mainBufferLength?: number): number;
 
-     onMediaDetaching(): void;
 
-     onAudioTracksUpdated(event: Events.AUDIO_TRACKS_UPDATED, { audioTracks }: AudioTracksUpdatedData): void;
 
-     onAudioTrackSwitching(event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData): void;
 
-     onManifestLoading(): void;
 
-     onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData): void;
 
-     onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData): void;
 
-     _handleFragmentLoadProgress(data: FragLoadedData): void;
 
-     protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
 
-     onBufferReset(): void;
 
-     onBufferCreated(event: Events.BUFFER_CREATED, data: BufferCreatedData): void;
 
-     onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
 
-     private onError;
 
-     private onBufferFlushing;
 
-     private onBufferFlushed;
 
-     private _handleTransmuxComplete;
 
-     private _bufferInitSegment;
 
-     protected loadFragment(frag: Fragment, track: Level, targetBufferTime: number): void;
 
-     private flushAudioIfNeeded;
 
-     private completeAudioSwitch;
 
- }
 
- export declare class AudioTrackController extends BasePlaylistController {
 
-     private tracks;
 
-     private groupIds;
 
-     private tracksInGroup;
 
-     private trackId;
 
-     private currentTrack;
 
-     private selectDefaultTrack;
 
-     constructor(hls: Hls);
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     destroy(): void;
 
-     protected onManifestLoading(): void;
 
-     protected onManifestParsed(event: Events.MANIFEST_PARSED, data: ManifestParsedData): void;
 
-     protected onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: AudioTrackLoadedData): void;
 
-     protected onLevelLoading(event: Events.LEVEL_LOADING, data: LevelLoadingData): void;
 
-     protected onLevelSwitching(event: Events.LEVEL_SWITCHING, data: LevelSwitchingData): void;
 
-     private switchLevel;
 
-     protected onError(event: Events.ERROR, data: ErrorData): void;
 
-     get allAudioTracks(): MediaPlaylist[];
 
-     get audioTracks(): MediaPlaylist[];
 
-     get audioTrack(): number;
 
-     set audioTrack(newId: number);
 
-     setAudioOption(audioOption: MediaPlaylist | AudioSelectionOption | undefined): MediaPlaylist | null;
 
-     private setAudioTrack;
 
-     private findTrackId;
 
-     protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void;
 
- }
 
- export declare interface AudioTrackLoadedData extends TrackLoadedData {
 
- }
 
- export declare interface AudioTracksUpdatedData {
 
-     audioTracks: MediaPlaylist[];
 
- }
 
- export declare interface AudioTrackSwitchedData extends MediaPlaylist {
 
- }
 
- export declare interface AudioTrackSwitchingData extends MediaPlaylist {
 
- }
 
- export declare interface BackBufferData {
 
-     bufferEnd: number;
 
- }
 
- export declare class BasePlaylistController implements NetworkComponentAPI {
 
-     protected hls: Hls;
 
-     protected timer: number;
 
-     protected requestScheduled: number;
 
-     protected canLoad: boolean;
 
-     protected log: (msg: any) => void;
 
-     protected warn: (msg: any) => void;
 
-     constructor(hls: Hls, logPrefix: string);
 
-     destroy(): void;
 
-     protected clearTimer(): void;
 
-     startLoad(): void;
 
-     stopLoad(): void;
 
-     protected switchParams(playlistUri: string, previous: LevelDetails | undefined, current: LevelDetails | undefined): HlsUrlParameters | undefined;
 
-     protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void;
 
-     protected shouldLoadPlaylist(playlist: Level | MediaPlaylist | null | undefined): boolean;
 
-     protected shouldReloadPlaylist(playlist: Level | MediaPlaylist | null | undefined): boolean;
 
-     protected playlistLoaded(index: number, data: LevelLoadedData | AudioTrackLoadedData | TrackLoadedData, previousDetails?: LevelDetails): void;
 
-     private getDeliveryDirectives;
 
-     protected checkRetry(errorEvent: ErrorData): boolean;
 
- }
 
- export declare class BaseSegment {
 
-     private _byteRange;
 
-     private _url;
 
-     readonly baseurl: string;
 
-     relurl?: string;
 
-     elementaryStreams: ElementaryStreams;
 
-     constructor(baseurl: string);
 
-     setByteRange(value: string, previous?: BaseSegment): void;
 
-     get byteRange(): [number, number] | [];
 
-     get byteRangeStartOffset(): number | undefined;
 
-     get byteRangeEndOffset(): number | undefined;
 
-     get url(): string;
 
-     set url(value: string);
 
- }
 
- export declare class BaseStreamController extends TaskLoop implements NetworkComponentAPI {
 
-     protected hls: Hls;
 
-     protected fragPrevious: Fragment | null;
 
-     protected fragCurrent: Fragment | null;
 
-     protected fragmentTracker: FragmentTracker;
 
-     protected transmuxer: TransmuxerInterface | null;
 
-     protected _state: string;
 
-     protected playlistType: PlaylistLevelType;
 
-     protected media: HTMLMediaElement | null;
 
-     protected mediaBuffer: Bufferable | null;
 
-     protected config: HlsConfig;
 
-     protected bitrateTest: boolean;
 
-     protected lastCurrentTime: number;
 
-     protected nextLoadPosition: number;
 
-     protected startPosition: number;
 
-     protected startTimeOffset: number | null;
 
-     protected loadedmetadata: boolean;
 
-     protected retryDate: number;
 
-     protected levels: Array<Level> | null;
 
-     protected fragmentLoader: FragmentLoader;
 
-     protected keyLoader: KeyLoader;
 
-     protected levelLastLoaded: Level | null;
 
-     protected startFragRequested: boolean;
 
-     protected decrypter: Decrypter;
 
-     protected initPTS: RationalTimestamp[];
 
-     protected onvseeking: EventListener | null;
 
-     protected onvended: EventListener | null;
 
-     private readonly logPrefix;
 
-     protected log: (msg: any) => void;
 
-     protected warn: (msg: any) => void;
 
-     constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
 
-     protected doTick(): void;
 
-     protected onTickEnd(): void;
 
-     startLoad(startPosition: number): void;
 
-     stopLoad(): void;
 
-     protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
 
-     protected getLevelDetails(): LevelDetails | undefined;
 
-     protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
 
-     protected onMediaDetaching(): void;
 
-     protected onMediaSeeking(): void;
 
-     protected onMediaEnded(): void;
 
-     protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
 
-     protected onHandlerDestroying(): void;
 
-     protected onHandlerDestroyed(): void;
 
-     protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
 
-     private _loadFragForPlayback;
 
-     protected clearTrackerIfNeeded(frag: Fragment): void;
 
-     protected checkLiveUpdate(details: LevelDetails): void;
 
-     protected flushMainBuffer(startOffset: number, endOffset: number, type?: SourceBufferName | null): void;
 
-     protected _loadInitSegment(frag: Fragment, level: Level): void;
 
-     private completeInitSegmentLoad;
 
-     protected fragContextChanged(frag: Fragment | null): boolean;
 
-     protected fragBufferedComplete(frag: Fragment, part: Part | null): void;
 
-     protected seekToStartPos(): void;
 
-     protected _handleFragmentLoadComplete(fragLoadedEndData: PartsLoadedData): void;
 
-     protected _handleFragmentLoadProgress(frag: PartsLoadedData | FragLoadedData): void;
 
-     protected _doFragLoad(frag: Fragment, level: Level, targetBufferTime?: number | null, progressCallback?: FragmentLoadProgressCallback): Promise<PartsLoadedData | FragLoadedData | null>;
 
-     private doFragPartsLoad;
 
-     private handleFragLoadError;
 
-     protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
 
-     protected getCurrentContext(chunkMeta: ChunkMetadata): {
 
-         frag: Fragment;
 
-         part: Part | null;
 
-         level: Level;
 
-     } | null;
 
-     protected bufferFragmentData(data: RemuxedTrack, frag: Fragment, part: Part | null, chunkMeta: ChunkMetadata, noBacktracking?: boolean): void;
 
-     protected flushBufferGap(frag: Fragment): void;
 
-     protected getFwdBufferInfo(bufferable: Bufferable | null, type: PlaylistLevelType): BufferInfo | null;
 
-     protected getFwdBufferInfoAtPos(bufferable: Bufferable | null, pos: number, type: PlaylistLevelType): BufferInfo | null;
 
-     protected getMaxBufferLength(levelBitrate?: number): number;
 
-     protected reduceMaxBufferLength(threshold: number): boolean;
 
-     protected getAppendedFrag(position: number, playlistType?: PlaylistLevelType): Fragment | null;
 
-     protected getNextFragment(pos: number, levelDetails: LevelDetails): Fragment | null;
 
-     protected isLoopLoading(frag: Fragment, targetBufferTime: number): boolean;
 
-     protected getNextFragmentLoopLoading(frag: Fragment, levelDetails: LevelDetails, bufferInfo: BufferInfo, playlistType: PlaylistLevelType, maxBufLen: number): Fragment | null;
 
-     mapToInitFragWhenRequired(frag: Fragment | null): typeof frag;
 
-     getNextPart(partList: Part[], frag: Fragment, targetBufferTime: number): number;
 
-     private loadedEndOfParts;
 
-     protected getInitialLiveFragment(levelDetails: LevelDetails, fragments: Array<Fragment>): Fragment | null;
 
-     protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails): Fragment | null;
 
-     protected synchronizeToLiveEdge(levelDetails: LevelDetails): void;
 
-     protected alignPlaylists(details: LevelDetails, previousDetails: LevelDetails | undefined, switchDetails: LevelDetails | undefined): number;
 
-     protected waitForCdnTuneIn(details: LevelDetails): boolean | 0;
 
-     protected setStartPosition(details: LevelDetails, sliding: number): void;
 
-     protected getLoadPosition(): number;
 
-     private handleFragLoadAborted;
 
-     protected resetFragmentLoading(frag: Fragment): void;
 
-     protected onFragmentOrKeyLoadError(filterType: PlaylistLevelType, data: ErrorData): void;
 
-     protected reduceLengthAndFlushBuffer(data: ErrorData): boolean;
 
-     protected resetFragmentErrors(filterType: PlaylistLevelType): void;
 
-     protected afterBufferFlushed(media: Bufferable, bufferType: SourceBufferName, playlistType: PlaylistLevelType): void;
 
-     protected resetLoadingState(): void;
 
-     protected resetStartWhenNotLoaded(level: Level | null): void;
 
-     protected resetWhenMissingContext(chunkMeta: ChunkMetadata): void;
 
-     protected removeUnbufferedFrags(start?: number): void;
 
-     private updateLevelTiming;
 
-     protected resetTransmuxer(): void;
 
-     protected recoverWorkerError(data: ErrorData): void;
 
-     set state(nextState: string);
 
-     get state(): string;
 
- }
 
- declare type Bufferable = {
 
-     buffered: TimeRanges;
 
- };
 
- export declare interface BufferAppendedData {
 
-     type: SourceBufferName;
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     chunkMeta: ChunkMetadata;
 
-     parent: PlaylistLevelType;
 
-     timeRanges: Partial<Record<SourceBufferName, TimeRanges>>;
 
- }
 
- export declare interface BufferAppendingData {
 
-     type: SourceBufferName;
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     chunkMeta: ChunkMetadata;
 
-     parent: PlaylistLevelType;
 
-     data: Uint8Array;
 
- }
 
- export declare interface BufferCodecsData {
 
-     video?: Track;
 
-     audio?: Track;
 
- }
 
- export declare class BufferController implements ComponentAPI {
 
-     private details;
 
-     private _objectUrl;
 
-     private operationQueue;
 
-     private listeners;
 
-     private hls;
 
-     bufferCodecEventsExpected: number;
 
-     private _bufferCodecEventsTotal;
 
-     media: HTMLMediaElement | null;
 
-     mediaSource: MediaSource | null;
 
-     private lastMpegAudioChunk;
 
-     private appendSource;
 
-     appendErrors: {
 
-         audio: number;
 
-         video: number;
 
-         audiovideo: number;
 
-     };
 
-     tracks: TrackSet;
 
-     pendingTracks: TrackSet;
 
-     sourceBuffer: SourceBuffers;
 
-     protected log: (msg: any) => void;
 
-     protected warn: (msg: any, obj?: any) => void;
 
-     protected error: (msg: any, obj?: any) => void;
 
-     constructor(hls: Hls);
 
-     hasSourceTypes(): boolean;
 
-     destroy(): void;
 
-     protected registerListeners(): void;
 
-     protected unregisterListeners(): void;
 
-     private _initSourceBuffer;
 
-     private onManifestLoading;
 
-     protected onManifestParsed(event: Events.MANIFEST_PARSED, data: ManifestParsedData): void;
 
-     protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
 
-     private _onEndStreaming;
 
-     private _onStartStreaming;
 
-     protected onMediaDetaching(): void;
 
-     protected onBufferReset(): void;
 
-     private resetBuffer;
 
-     protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
 
-     protected appendChangeType(type: any, mimeType: any): void;
 
-     protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
 
-     protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
 
-     protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
 
-     private onFragChanged;
 
-     protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData): void;
 
-     protected onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData): void;
 
-     trimBuffers(): void;
 
-     flushBackBuffer(currentTime: number, targetDuration: number, targetBackBufferPosition: number): void;
 
-     flushFrontBuffer(currentTime: number, targetDuration: number, targetFrontBufferPosition: number): void;
 
-     /**
 
-      * Update Media Source duration to current level duration or override to Infinity if configuration parameter
 
-      * 'liveDurationInfinity` is set to `true`
 
-      * More details: https://github.com/video-dev/hls.js/issues/355
 
-      */
 
-     private updateMediaElementDuration;
 
-     updateSeekableRange(levelDetails: any): void;
 
-     protected checkPendingTracks(): void;
 
-     protected createSourceBuffers(tracks: TrackSet): void;
 
-     private _onMediaSourceOpen;
 
-     private _onMediaSourceClose;
 
-     private _onMediaSourceEnded;
 
-     private _onMediaEmptied;
 
-     private get mediaSrc();
 
-     private _onSBUpdateStart;
 
-     private _onSBUpdateEnd;
 
-     private _onSBUpdateError;
 
-     private removeExecutor;
 
-     private appendExecutor;
 
-     private blockBuffers;
 
-     private getSourceBufferTypes;
 
-     private addBufferListener;
 
-     private removeBufferListeners;
 
- }
 
- export declare type BufferControllerConfig = {
 
-     appendErrorMaxRetry: number;
 
-     backBufferLength: number;
 
-     frontBufferFlushThreshold: number;
 
-     liveDurationInfinity: boolean;
 
-     /**
 
-      * @deprecated use backBufferLength
 
-      */
 
-     liveBackBufferLength: number | null;
 
- };
 
- export declare interface BufferCreatedData {
 
-     tracks: TrackSet;
 
- }
 
- export declare interface BufferEOSData {
 
-     type?: SourceBufferName;
 
- }
 
- export declare interface BufferFlushedData {
 
-     type: SourceBufferName;
 
- }
 
- export declare interface BufferFlushingData {
 
-     startOffset: number;
 
-     endOffset: number;
 
-     endOffsetSubtitles?: number;
 
-     type: SourceBufferName | null;
 
- }
 
- export declare type BufferInfo = {
 
-     len: number;
 
-     start: number;
 
-     end: number;
 
-     nextStart?: number;
 
- };
 
- export declare class CapLevelController implements ComponentAPI {
 
-     private hls;
 
-     private autoLevelCapping;
 
-     private firstLevel;
 
-     private media;
 
-     private restrictedLevels;
 
-     private timer;
 
-     private clientRect;
 
-     private streamController?;
 
-     constructor(hls: Hls);
 
-     setStreamController(streamController: StreamController): void;
 
-     destroy(): void;
 
-     protected registerListeners(): void;
 
-     protected unregisterListener(): void;
 
-     protected onFpsDropLevelCapping(event: Events.FPS_DROP_LEVEL_CAPPING, data: FPSDropLevelCappingData): void;
 
-     protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
 
-     protected onManifestParsed(event: Events.MANIFEST_PARSED, data: ManifestParsedData): void;
 
-     private onLevelsUpdated;
 
-     protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
 
-     protected onMediaDetaching(): void;
 
-     detectPlayerSize(): void;
 
-     getMaxLevel(capLevelIndex: number): number;
 
-     startCapping(): void;
 
-     stopCapping(): void;
 
-     getDimensions(): {
 
-         width: number;
 
-         height: number;
 
-     };
 
-     get mediaWidth(): number;
 
-     get mediaHeight(): number;
 
-     get contentScaleFactor(): number;
 
-     private isLevelAllowed;
 
-     static getMaxLevelByMediaSize(levels: Array<Level>, width: number, height: number): number;
 
- }
 
- export declare type CapLevelControllerConfig = {
 
-     capLevelToPlayerSize: boolean;
 
- };
 
- /**
 
-  * Keep a CEA-608 screen of 32x15 styled characters
 
-  * @constructor
 
-  */
 
- declare class CaptionScreen {
 
-     rows: Row[];
 
-     currRow: number;
 
-     nrRollUpRows: number | null;
 
-     lastOutputScreen: CaptionScreen | null;
 
-     logger: CaptionsLogger;
 
-     constructor(logger: CaptionsLogger);
 
-     reset(): void;
 
-     equals(other: CaptionScreen): boolean;
 
-     copy(other: CaptionScreen): void;
 
-     isEmpty(): boolean;
 
-     backSpace(): void;
 
-     clearToEndOfRow(): void;
 
-     /**
 
-      * Insert a character (without styling) in the current row.
 
-      */
 
-     insertChar(char: number): void;
 
-     setPen(styles: Partial<PenStyles>): void;
 
-     moveCursor(relPos: number): void;
 
-     setCursor(absPos: number): void;
 
-     setPAC(pacData: PACData): void;
 
-     /**
 
-      * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).
 
-      */
 
-     setBkgData(bkgData: Partial<PenStyles>): void;
 
-     setRollUpRows(nrRows: number | null): void;
 
-     rollUp(): void;
 
-     /**
 
-      * Get all non-empty rows with as unicode text.
 
-      */
 
-     getDisplayText(asOneRow?: boolean): string;
 
-     getTextAndFormat(): Row[];
 
- }
 
- declare class CaptionsLogger {
 
-     time: number | null;
 
-     verboseLevel: VerboseLevel;
 
-     log(severity: VerboseLevel, msg: string | (() => string)): void;
 
- }
 
- export declare class ChunkMetadata {
 
-     readonly level: number;
 
-     readonly sn: number;
 
-     readonly part: number;
 
-     readonly id: number;
 
-     readonly size: number;
 
-     readonly partial: boolean;
 
-     readonly transmuxing: HlsChunkPerformanceTiming;
 
-     readonly buffering: {
 
-         [key in SourceBufferName]: HlsChunkPerformanceTiming;
 
-     };
 
-     constructor(level: number, sn: number, id: number, size?: number, part?: number, partial?: boolean);
 
- }
 
- /**
 
-  * Controller to deal with Common Media Client Data (CMCD)
 
-  * @see https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf
 
-  */
 
- export declare class CMCDController implements ComponentAPI {
 
-     private hls;
 
-     private config;
 
-     private media?;
 
-     private sid?;
 
-     private cid?;
 
-     private useHeaders;
 
-     private includeKeys?;
 
-     private initialized;
 
-     private starved;
 
-     private buffering;
 
-     private audioBuffer?;
 
-     private videoBuffer?;
 
-     constructor(hls: Hls);
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     destroy(): void;
 
-     private onMediaAttached;
 
-     private onMediaDetached;
 
-     private onBufferCreated;
 
-     private onWaiting;
 
-     private onPlaying;
 
-     /**
 
-      * Create baseline CMCD data
 
-      */
 
-     private createData;
 
-     /**
 
-      * Apply CMCD data to a request.
 
-      */
 
-     private apply;
 
-     /**
 
-      * Apply CMCD data to a manifest request.
 
-      */
 
-     private applyPlaylistData;
 
-     /**
 
-      * Apply CMCD data to a segment request
 
-      */
 
-     private applyFragmentData;
 
-     /**
 
-      * The CMCD object type.
 
-      */
 
-     private getObjectType;
 
-     /**
 
-      * Get the highest bitrate.
 
-      */
 
-     private getTopBandwidth;
 
-     /**
 
-      * Get the buffer length for a media type in milliseconds
 
-      */
 
-     private getBufferLength;
 
-     /**
 
-      * Create a playlist loader
 
-      */
 
-     private createPlaylistLoader;
 
-     /**
 
-      * Create a playlist loader
 
-      */
 
-     private createFragmentLoader;
 
- }
 
- export declare type CMCDControllerConfig = {
 
-     sessionId?: string;
 
-     contentId?: string;
 
-     useHeaders?: boolean;
 
-     includeKeys?: string[];
 
- };
 
- export declare interface ComponentAPI {
 
-     destroy(): void;
 
- }
 
- export declare class ContentSteeringController implements NetworkComponentAPI {
 
-     private readonly hls;
 
-     private log;
 
-     private loader;
 
-     private uri;
 
-     private pathwayId;
 
-     private pathwayPriority;
 
-     private timeToLoad;
 
-     private reloadTimer;
 
-     private updated;
 
-     private started;
 
-     private enabled;
 
-     private levels;
 
-     private audioTracks;
 
-     private subtitleTracks;
 
-     private penalizedPathways;
 
-     constructor(hls: Hls);
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     startLoad(): void;
 
-     stopLoad(): void;
 
-     clearTimeout(): void;
 
-     destroy(): void;
 
-     removeLevel(levelToRemove: Level): void;
 
-     private onManifestLoading;
 
-     private onManifestLoaded;
 
-     private onManifestParsed;
 
-     private onError;
 
-     filterParsedLevels(levels: Level[]): Level[];
 
-     private getLevelsForPathway;
 
-     private updatePathwayPriority;
 
-     private getPathwayForGroupId;
 
-     private clonePathways;
 
-     private loadSteeringManifest;
 
-     private scheduleRefresh;
 
- }
 
- export declare type ContentSteeringOptions = {
 
-     uri: string;
 
-     pathwayId: string;
 
- };
 
- export declare interface CuesInterface {
 
-     newCue(track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[];
 
- }
 
- export declare interface CuesParsedData {
 
-     type: 'captions' | 'subtitles';
 
-     cues: any;
 
-     track: string;
 
- }
 
- export declare class DateRange {
 
-     attr: AttrList;
 
-     private _startDate;
 
-     private _endDate?;
 
-     private _badValueForSameId?;
 
-     constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange);
 
-     get id(): string;
 
-     get class(): string;
 
-     get startDate(): Date;
 
-     get endDate(): Date | null;
 
-     get duration(): number | null;
 
-     get plannedDuration(): number | null;
 
-     get endOnNext(): boolean;
 
-     get isValid(): boolean;
 
- }
 
- declare interface DecryptData {
 
-     uri: string;
 
-     method: string;
 
-     keyFormat: string;
 
-     keyFormatVersions: number[];
 
-     iv: Uint8Array | null;
 
-     key: Uint8Array | null;
 
-     keyId: Uint8Array | null;
 
-     pssh: Uint8Array | null;
 
-     encrypted: boolean;
 
-     isCommonEncryption: boolean;
 
- }
 
- declare class Decrypter {
 
-     private logEnabled;
 
-     private removePKCS7Padding;
 
-     private subtle;
 
-     private softwareDecrypter;
 
-     private key;
 
-     private fastAesKey;
 
-     private remainderData;
 
-     private currentIV;
 
-     private currentResult;
 
-     private useSoftware;
 
-     constructor(config: HlsConfig, { removePKCS7Padding }?: {
 
-         removePKCS7Padding?: boolean | undefined;
 
-     });
 
-     destroy(): void;
 
-     isSync(): boolean;
 
-     flush(): Uint8Array | null;
 
-     reset(): void;
 
-     decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
 
-     softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): ArrayBuffer | null;
 
-     webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
 
-     private onWebCryptoError;
 
-     private getValidChunk;
 
-     private logOnce;
 
- }
 
- declare type DRMSystemConfiguration = {
 
-     licenseUrl: string;
 
-     serverCertificateUrl?: string;
 
-     generateRequest?: (this: Hls, initDataType: string, initData: ArrayBuffer | null, keyContext: MediaKeySessionContext) => {
 
-         initDataType: string;
 
-         initData: ArrayBuffer | null;
 
-     } | undefined | never;
 
- };
 
- export declare type DRMSystemOptions = {
 
-     audioRobustness?: string;
 
-     videoRobustness?: string;
 
-     audioEncryptionScheme?: string | null;
 
-     videoEncryptionScheme?: string | null;
 
-     persistentState?: MediaKeysRequirement;
 
-     distinctiveIdentifier?: MediaKeysRequirement;
 
-     sessionTypes?: string[];
 
-     sessionType?: string;
 
- };
 
- export declare type DRMSystemsConfiguration = Partial<Record<KeySystems, DRMSystemConfiguration>>;
 
- export declare interface ElementaryStreamInfo {
 
-     startPTS: number;
 
-     endPTS: number;
 
-     startDTS: number;
 
-     endDTS: number;
 
-     partial?: boolean;
 
- }
 
- export declare type ElementaryStreams = Record<ElementaryStreamTypes, ElementaryStreamInfo | null>;
 
- export declare const enum ElementaryStreamTypes {
 
-     AUDIO = "audio",
 
-     VIDEO = "video",
 
-     AUDIOVIDEO = "audiovideo"
 
- }
 
- /**
 
-  * Controller to deal with encrypted media extensions (EME)
 
-  * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API
 
-  *
 
-  * @class
 
-  * @constructor
 
-  */
 
- export declare class EMEController implements ComponentAPI {
 
-     static CDMCleanupPromise: Promise<void> | void;
 
-     private readonly hls;
 
-     private readonly config;
 
-     private media;
 
-     private keyFormatPromise;
 
-     private keySystemAccessPromises;
 
-     private _requestLicenseFailureCount;
 
-     private mediaKeySessions;
 
-     private keyIdToKeySessionPromise;
 
-     private setMediaKeysQueue;
 
-     private onMediaEncrypted;
 
-     private onWaitingForKey;
 
-     private debug;
 
-     private log;
 
-     private warn;
 
-     private error;
 
-     constructor(hls: Hls);
 
-     destroy(): void;
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     private getLicenseServerUrl;
 
-     private getServerCertificateUrl;
 
-     private attemptKeySystemAccess;
 
-     private requestMediaKeySystemAccess;
 
-     private getMediaKeysPromise;
 
-     private createMediaKeySessionContext;
 
-     private renewKeySession;
 
-     private getKeyIdString;
 
-     private updateKeySession;
 
-     selectKeySystemFormat(frag: Fragment): Promise<KeySystemFormats>;
 
-     private getKeyFormatPromise;
 
-     loadKey(data: KeyLoadedData): Promise<MediaKeySessionContext>;
 
-     private throwIfDestroyed;
 
-     private handleError;
 
-     private getKeySystemForKeyPromise;
 
-     private getKeySystemSelectionPromise;
 
-     private _onMediaEncrypted;
 
-     private _onWaitingForKey;
 
-     private attemptSetMediaKeys;
 
-     private generateRequestWithPreferredKeySession;
 
-     private onKeyStatusChange;
 
-     private fetchServerCertificate;
 
-     private setMediaKeysServerCertificate;
 
-     private renewLicense;
 
-     private unpackPlayReadyKeyMessage;
 
-     private setupLicenseXHR;
 
-     private requestLicense;
 
-     private onMediaAttached;
 
-     private onMediaDetached;
 
-     private onManifestLoading;
 
-     private onManifestLoaded;
 
-     private removeSession;
 
- }
 
- export declare type EMEControllerConfig = {
 
-     licenseXhrSetup?: (this: Hls, xhr: XMLHttpRequest, url: string, keyContext: MediaKeySessionContext, licenseChallenge: Uint8Array) => void | Uint8Array | Promise<Uint8Array | void>;
 
-     licenseResponseCallback?: (this: Hls, xhr: XMLHttpRequest, url: string, keyContext: MediaKeySessionContext) => ArrayBuffer;
 
-     emeEnabled: boolean;
 
-     widevineLicenseUrl?: string;
 
-     drmSystems: DRMSystemsConfiguration;
 
-     drmSystemOptions: DRMSystemOptions;
 
-     requestMediaKeySystemAccessFunc: MediaKeyFunc | null;
 
- };
 
- export declare const enum ErrorActionFlags {
 
-     None = 0,
 
-     MoveAllAlternatesMatchingHost = 1,
 
-     MoveAllAlternatesMatchingHDCP = 2,
 
-     SwitchToSDR = 4
 
- }
 
- export declare class ErrorController implements NetworkComponentAPI {
 
-     private readonly hls;
 
-     private playlistError;
 
-     private penalizedRenditions;
 
-     private log;
 
-     private warn;
 
-     private error;
 
-     constructor(hls: Hls);
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     destroy(): void;
 
-     startLoad(startPosition: number): void;
 
-     stopLoad(): void;
 
-     private getVariantLevelIndex;
 
-     private onManifestLoading;
 
-     private onLevelUpdated;
 
-     private onError;
 
-     private keySystemError;
 
-     private getPlaylistRetryOrSwitchAction;
 
-     private getFragRetryOrSwitchAction;
 
-     private getLevelSwitchAction;
 
-     onErrorOut(event: Events.ERROR, data: ErrorData): void;
 
-     private sendAlternateToPenaltyBox;
 
-     private switchLevel;
 
- }
 
- export declare interface ErrorData {
 
-     type: ErrorTypes;
 
-     details: ErrorDetails;
 
-     error: Error;
 
-     fatal: boolean;
 
-     errorAction?: IErrorAction;
 
-     buffer?: number;
 
-     bytes?: number;
 
-     chunkMeta?: ChunkMetadata;
 
-     context?: PlaylistLoaderContext;
 
-     event?: keyof HlsListeners | 'demuxerWorker';
 
-     frag?: Fragment;
 
-     part?: Part | null;
 
-     level?: number | undefined;
 
-     levelRetry?: boolean;
 
-     loader?: Loader<LoaderContext>;
 
-     networkDetails?: any;
 
-     stats?: LoaderStats;
 
-     mimeType?: string;
 
-     reason?: string;
 
-     response?: LoaderResponse;
 
-     url?: string;
 
-     parent?: PlaylistLevelType;
 
-     sourceBufferName?: SourceBufferName;
 
-     /**
 
-      * @deprecated Use ErrorData.error
 
-      */
 
-     err?: {
 
-         message: string;
 
-     };
 
- }
 
- export declare enum ErrorDetails {
 
-     KEY_SYSTEM_NO_KEYS = "keySystemNoKeys",
 
-     KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess",
 
-     KEY_SYSTEM_NO_SESSION = "keySystemNoSession",
 
-     KEY_SYSTEM_NO_CONFIGURED_LICENSE = "keySystemNoConfiguredLicense",
 
-     KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed",
 
-     KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = "keySystemServerCertificateRequestFailed",
 
-     KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = "keySystemServerCertificateUpdateFailed",
 
-     KEY_SYSTEM_SESSION_UPDATE_FAILED = "keySystemSessionUpdateFailed",
 
-     KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = "keySystemStatusOutputRestricted",
 
-     KEY_SYSTEM_STATUS_INTERNAL_ERROR = "keySystemStatusInternalError",
 
-     MANIFEST_LOAD_ERROR = "manifestLoadError",
 
-     MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut",
 
-     MANIFEST_PARSING_ERROR = "manifestParsingError",
 
-     MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError",
 
-     LEVEL_EMPTY_ERROR = "levelEmptyError",
 
-     LEVEL_LOAD_ERROR = "levelLoadError",
 
-     LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut",
 
-     LEVEL_PARSING_ERROR = "levelParsingError",
 
-     LEVEL_SWITCH_ERROR = "levelSwitchError",
 
-     AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError",
 
-     AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut",
 
-     SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError",
 
-     SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut",
 
-     FRAG_LOAD_ERROR = "fragLoadError",
 
-     FRAG_LOAD_TIMEOUT = "fragLoadTimeOut",
 
-     FRAG_DECRYPT_ERROR = "fragDecryptError",
 
-     FRAG_PARSING_ERROR = "fragParsingError",
 
-     FRAG_GAP = "fragGap",
 
-     REMUX_ALLOC_ERROR = "remuxAllocError",
 
-     KEY_LOAD_ERROR = "keyLoadError",
 
-     KEY_LOAD_TIMEOUT = "keyLoadTimeOut",
 
-     BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError",
 
-     BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError",
 
-     BUFFER_APPEND_ERROR = "bufferAppendError",
 
-     BUFFER_APPENDING_ERROR = "bufferAppendingError",
 
-     BUFFER_STALLED_ERROR = "bufferStalledError",
 
-     BUFFER_FULL_ERROR = "bufferFullError",
 
-     BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole",
 
-     BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall",
 
-     INTERNAL_EXCEPTION = "internalException",
 
-     INTERNAL_ABORTED = "aborted",
 
-     UNKNOWN = "unknown"
 
- }
 
- export declare enum ErrorTypes {
 
-     NETWORK_ERROR = "networkError",
 
-     MEDIA_ERROR = "mediaError",
 
-     KEY_SYSTEM_ERROR = "keySystemError",
 
-     MUX_ERROR = "muxError",
 
-     OTHER_ERROR = "otherError"
 
- }
 
- export declare enum Events {
 
-     MEDIA_ATTACHING = "hlsMediaAttaching",
 
-     MEDIA_ATTACHED = "hlsMediaAttached",
 
-     MEDIA_DETACHING = "hlsMediaDetaching",
 
-     MEDIA_DETACHED = "hlsMediaDetached",
 
-     BUFFER_RESET = "hlsBufferReset",
 
-     BUFFER_CODECS = "hlsBufferCodecs",
 
-     BUFFER_CREATED = "hlsBufferCreated",
 
-     BUFFER_APPENDING = "hlsBufferAppending",
 
-     BUFFER_APPENDED = "hlsBufferAppended",
 
-     BUFFER_EOS = "hlsBufferEos",
 
-     BUFFER_FLUSHING = "hlsBufferFlushing",
 
-     BUFFER_FLUSHED = "hlsBufferFlushed",
 
-     MANIFEST_LOADING = "hlsManifestLoading",
 
-     MANIFEST_LOADED = "hlsManifestLoaded",
 
-     MANIFEST_PARSED = "hlsManifestParsed",
 
-     LEVEL_SWITCHING = "hlsLevelSwitching",
 
-     LEVEL_SWITCHED = "hlsLevelSwitched",
 
-     LEVEL_LOADING = "hlsLevelLoading",
 
-     LEVEL_LOADED = "hlsLevelLoaded",
 
-     LEVEL_UPDATED = "hlsLevelUpdated",
 
-     LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated",
 
-     LEVELS_UPDATED = "hlsLevelsUpdated",
 
-     AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated",
 
-     AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching",
 
-     AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched",
 
-     AUDIO_TRACK_LOADING = "hlsAudioTrackLoading",
 
-     AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded",
 
-     SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated",
 
-     SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared",
 
-     SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch",
 
-     SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading",
 
-     SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded",
 
-     SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed",
 
-     CUES_PARSED = "hlsCuesParsed",
 
-     NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound",
 
-     INIT_PTS_FOUND = "hlsInitPtsFound",
 
-     FRAG_LOADING = "hlsFragLoading",
 
-     FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted",
 
-     FRAG_LOADED = "hlsFragLoaded",
 
-     FRAG_DECRYPTED = "hlsFragDecrypted",
 
-     FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment",
 
-     FRAG_PARSING_USERDATA = "hlsFragParsingUserdata",
 
-     FRAG_PARSING_METADATA = "hlsFragParsingMetadata",
 
-     FRAG_PARSED = "hlsFragParsed",
 
-     FRAG_BUFFERED = "hlsFragBuffered",
 
-     FRAG_CHANGED = "hlsFragChanged",
 
-     FPS_DROP = "hlsFpsDrop",
 
-     FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping",
 
-     MAX_AUTO_LEVEL_UPDATED = "hlsMaxAutoLevelUpdated",
 
-     ERROR = "hlsError",
 
-     DESTROYING = "hlsDestroying",
 
-     KEY_LOADING = "hlsKeyLoading",
 
-     KEY_LOADED = "hlsKeyLoaded",
 
-     LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached",
 
-     BACK_BUFFER_REACHED = "hlsBackBufferReached",
 
-     STEERING_MANIFEST_LOADED = "hlsSteeringManifestLoaded"
 
- }
 
- declare class EwmaBandWidthEstimator {
 
-     private defaultEstimate_;
 
-     private minWeight_;
 
-     private minDelayMs_;
 
-     private slow_;
 
-     private fast_;
 
-     private defaultTTFB_;
 
-     private ttfb_;
 
-     constructor(slow: number, fast: number, defaultEstimate: number, defaultTTFB?: number);
 
-     update(slow: number, fast: number): void;
 
-     sample(durationMs: number, numBytes: number): void;
 
-     sampleTTFB(ttfb: number): void;
 
-     canEstimate(): boolean;
 
-     getEstimate(): number;
 
-     getEstimateTTFB(): number;
 
-     destroy(): void;
 
- }
 
- declare type ExtendedSourceBuffer = SourceBuffer & {
 
-     ended?: boolean;
 
-     ending?: boolean;
 
-     changeType?: (type: string) => void;
 
- };
 
- export declare class FPSController implements ComponentAPI {
 
-     private hls;
 
-     private isVideoPlaybackQualityAvailable;
 
-     private timer?;
 
-     private media;
 
-     private lastTime;
 
-     private lastDroppedFrames;
 
-     private lastDecodedFrames;
 
-     private streamController;
 
-     constructor(hls: Hls);
 
-     setStreamController(streamController: StreamController): void;
 
-     protected registerListeners(): void;
 
-     protected unregisterListeners(): void;
 
-     destroy(): void;
 
-     protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
 
-     checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
 
-     checkFPSInterval(): void;
 
- }
 
- export declare type FPSControllerConfig = {
 
-     capLevelOnFPSDrop: boolean;
 
-     fpsDroppedMonitoringPeriod: number;
 
-     fpsDroppedMonitoringThreshold: number;
 
- };
 
- export declare interface FPSDropData {
 
-     currentDropped: number;
 
-     currentDecoded: number;
 
-     totalDroppedFrames: number;
 
- }
 
- export declare interface FPSDropLevelCappingData {
 
-     droppedLevel: number;
 
-     level: number;
 
- }
 
- export declare interface FragBufferedData {
 
-     stats: LoadStats;
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     id: string;
 
- }
 
- export declare interface FragChangedData {
 
-     frag: Fragment;
 
- }
 
- export declare interface FragDecryptedData {
 
-     frag: Fragment;
 
-     payload: ArrayBuffer;
 
-     stats: {
 
-         tstart: number;
 
-         tdecrypt: number;
 
-     };
 
- }
 
- export declare interface FragLoadedData {
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     payload: ArrayBuffer;
 
-     networkDetails: unknown;
 
- }
 
- export declare interface FragLoadEmergencyAbortedData {
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     stats: LoaderStats;
 
- }
 
- declare interface FragLoadFailResult extends ErrorData {
 
-     frag: Fragment;
 
-     part?: Part;
 
-     response?: {
 
-         data: any;
 
-         code: number;
 
-         text: string;
 
-         url: string;
 
-     };
 
-     networkDetails: any;
 
- }
 
- export declare interface FragLoadingData {
 
-     frag: Fragment;
 
-     part?: Part;
 
-     targetBufferTime: number | null;
 
- }
 
- /**
 
-  * Object representing parsed data from an HLS Segment. Found in {@link hls.js#LevelDetails.fragments}.
 
-  */
 
- export declare class Fragment extends BaseSegment {
 
-     private _decryptdata;
 
-     rawProgramDateTime: string | null;
 
-     programDateTime: number | null;
 
-     tagList: Array<string[]>;
 
-     duration: number;
 
-     sn: number | 'initSegment';
 
-     levelkeys?: {
 
-         [key: string]: LevelKey;
 
-     };
 
-     readonly type: PlaylistLevelType;
 
-     loader: Loader<FragmentLoaderContext> | null;
 
-     keyLoader: Loader<KeyLoaderContext> | null;
 
-     level: number;
 
-     cc: number;
 
-     startPTS?: number;
 
-     endPTS?: number;
 
-     startDTS: number;
 
-     endDTS: number;
 
-     start: number;
 
-     deltaPTS?: number;
 
-     maxStartPTS?: number;
 
-     minEndPTS?: number;
 
-     stats: LoadStats;
 
-     data?: Uint8Array;
 
-     bitrateTest: boolean;
 
-     title: string | null;
 
-     initSegment: Fragment | null;
 
-     endList?: boolean;
 
-     gap?: boolean;
 
-     urlId: number;
 
-     constructor(type: PlaylistLevelType, baseurl: string);
 
-     get decryptdata(): LevelKey | null;
 
-     get end(): number;
 
-     get endProgramDateTime(): number | null;
 
-     get encrypted(): boolean;
 
-     setKeyFormat(keyFormat: KeySystemFormats): void;
 
-     abortRequests(): void;
 
-     setElementaryStreamInfo(type: ElementaryStreamTypes, startPTS: number, endPTS: number, startDTS: number, endDTS: number, partial?: boolean): void;
 
-     clearElementaryStreamInfo(): void;
 
- }
 
- declare class FragmentLoader {
 
-     private readonly config;
 
-     private loader;
 
-     private partLoadTimeout;
 
-     constructor(config: HlsConfig);
 
-     destroy(): void;
 
-     abort(): void;
 
-     load(frag: Fragment, onProgress?: FragmentLoadProgressCallback): Promise<FragLoadedData>;
 
-     loadPart(frag: Fragment, part: Part, onProgress: FragmentLoadProgressCallback): Promise<FragLoadedData>;
 
-     private updateStatsFromPart;
 
-     private resetLoader;
 
- }
 
- /**
 
-  * @deprecated use fragLoadPolicy.default
 
-  */
 
- export declare type FragmentLoaderConfig = {
 
-     fragLoadingTimeOut: number;
 
-     fragLoadingMaxRetry: number;
 
-     fragLoadingRetryDelay: number;
 
-     fragLoadingMaxRetryTimeout: number;
 
- };
 
- export declare interface FragmentLoaderConstructor {
 
-     new (confg: HlsConfig): Loader<FragmentLoaderContext>;
 
- }
 
- export declare interface FragmentLoaderContext extends LoaderContext {
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     resetIV?: boolean;
 
- }
 
- declare type FragmentLoadProgressCallback = (result: FragLoadedData | PartsLoadedData) => void;
 
- declare const enum FragmentState {
 
-     NOT_LOADED = "NOT_LOADED",
 
-     APPENDING = "APPENDING",
 
-     PARTIAL = "PARTIAL",
 
-     OK = "OK"
 
- }
 
- declare class FragmentTracker implements ComponentAPI {
 
-     private activePartLists;
 
-     private endListFragments;
 
-     private fragments;
 
-     private timeRanges;
 
-     private bufferPadding;
 
-     private hls;
 
-     private hasGaps;
 
-     constructor(hls: Hls);
 
-     private _registerListeners;
 
-     private _unregisterListeners;
 
-     destroy(): void;
 
-     /**
 
-      * Return a Fragment or Part with an appended range that matches the position and levelType
 
-      * Otherwise, return null
 
-      */
 
-     getAppendedFrag(position: number, levelType: PlaylistLevelType): Fragment | Part | null;
 
-     /**
 
-      * Return a buffered Fragment that matches the position and levelType.
 
-      * A buffered Fragment is one whose loading, parsing and appending is done (completed or "partial" meaning aborted).
 
-      * If not found any Fragment, return null
 
-      */
 
-     getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
 
-     /**
 
-      * Partial fragments effected by coded frame eviction will be removed
 
-      * The browser will unload parts of the buffer to free up memory for new buffer data
 
-      * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)
 
-      */
 
-     detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null): void;
 
-     /**
 
-      * Checks if the fragment passed in is loaded in the buffer properly
 
-      * Partially loaded fragments will be registered as a partial fragment
 
-      */
 
-     detectPartialFragments(data: FragBufferedData): void;
 
-     private removeParts;
 
-     fragBuffered(frag: Fragment, force?: true): void;
 
-     private getBufferedTimes;
 
-     /**
 
-      * Gets the partial fragment for a certain time
 
-      */
 
-     getPartialFragment(time: number): Fragment | null;
 
-     isEndListAppended(type: PlaylistLevelType): boolean;
 
-     getState(fragment: Fragment): FragmentState;
 
-     private isTimeBuffered;
 
-     private onFragLoaded;
 
-     private onBufferAppended;
 
-     private onFragBuffered;
 
-     private hasFragment;
 
-     hasParts(type: PlaylistLevelType): boolean;
 
-     removeFragmentsInRange(start: number, end: number, playlistType: PlaylistLevelType, withGapOnly?: boolean, unbufferedOnly?: boolean): void;
 
-     removeFragment(fragment: Fragment): void;
 
-     removeAllFragments(): void;
 
- }
 
- export declare interface FragParsedData {
 
-     frag: Fragment;
 
-     part: Part | null;
 
- }
 
- export declare interface FragParsingInitSegmentData {
 
- }
 
- export declare interface FragParsingMetadataData {
 
-     id: string;
 
-     frag: Fragment;
 
-     details: LevelDetails;
 
-     samples: MetadataSample[];
 
- }
 
- export declare interface FragParsingUserdataData {
 
-     id: string;
 
-     frag: Fragment;
 
-     details: LevelDetails;
 
-     samples: UserdataSample[];
 
- }
 
- export declare type HdcpLevel = (typeof HdcpLevels)[number];
 
- declare const HdcpLevels: readonly ["NONE", "TYPE-0", "TYPE-1", null];
 
- /**
 
-  * The `Hls` class is the core of the HLS.js library used to instantiate player instances.
 
-  * @public
 
-  */
 
- declare class Hls implements HlsEventEmitter {
 
-     private static defaultConfig;
 
-     /**
 
-      * The runtime configuration used by the player. At instantiation this is combination of `hls.userConfig` merged over `Hls.DefaultConfig`.
 
-      */
 
-     readonly config: HlsConfig;
 
-     /**
 
-      * The configuration object provided on player instantiation.
 
-      */
 
-     readonly userConfig: Partial<HlsConfig>;
 
-     private coreComponents;
 
-     private networkControllers;
 
-     private started;
 
-     private _emitter;
 
-     private _autoLevelCapping;
 
-     private _maxHdcpLevel;
 
-     private abrController;
 
-     private bufferController;
 
-     private capLevelController;
 
-     private latencyController;
 
-     private levelController;
 
-     private streamController;
 
-     private audioTrackController;
 
-     private subtitleTrackController;
 
-     private emeController;
 
-     private cmcdController;
 
-     private _media;
 
-     private url;
 
-     private triggeringException?;
 
-     /**
 
-      * Get the video-dev/hls.js package version.
 
-      */
 
-     static get version(): string;
 
-     /**
 
-      * Check if the required MediaSource Extensions are available.
 
-      */
 
-     static isMSESupported(): boolean;
 
-     /**
 
-      * Check if MediaSource Extensions are available and isTypeSupported checks pass for any baseline codecs.
 
-      */
 
-     static isSupported(): boolean;
 
-     /**
 
-      * Get the MediaSource global used for MSE playback (ManagedMediaSource, MediaSource, or WebKitMediaSource).
 
-      */
 
-     static getMediaSource(): typeof MediaSource | undefined;
 
-     static get Events(): typeof Events;
 
-     static get ErrorTypes(): typeof ErrorTypes;
 
-     static get ErrorDetails(): typeof ErrorDetails;
 
-     /**
 
-      * Get the default configuration applied to new instances.
 
-      */
 
-     static get DefaultConfig(): HlsConfig;
 
-     /**
 
-      * Replace the default configuration applied to new instances.
 
-      */
 
-     static set DefaultConfig(defaultConfig: HlsConfig);
 
-     /**
 
-      * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.
 
-      * @param userConfig - Configuration options applied over `Hls.DefaultConfig`
 
-      */
 
-     constructor(userConfig?: Partial<HlsConfig>);
 
-     createController(ControllerClass: any, components: any): any;
 
-     on<E extends keyof HlsListeners, Context = undefined>(event: E, listener: HlsListeners[E], context?: Context): void;
 
-     once<E extends keyof HlsListeners, Context = undefined>(event: E, listener: HlsListeners[E], context?: Context): void;
 
-     removeAllListeners<E extends keyof HlsListeners>(event?: E | undefined): void;
 
-     off<E extends keyof HlsListeners, Context = undefined>(event: E, listener?: HlsListeners[E] | undefined, context?: Context, once?: boolean | undefined): void;
 
-     listeners<E extends keyof HlsListeners>(event: E): HlsListeners[E][];
 
-     emit<E extends keyof HlsListeners>(event: E, name: E, eventObject: Parameters<HlsListeners[E]>[1]): boolean;
 
-     trigger<E extends keyof HlsListeners>(event: E, eventObject: Parameters<HlsListeners[E]>[1]): boolean;
 
-     listenerCount<E extends keyof HlsListeners>(event: E): number;
 
-     /**
 
-      * Dispose of the instance
 
-      */
 
-     destroy(): void;
 
-     /**
 
-      * Attaches Hls.js to a media element
 
-      */
 
-     attachMedia(media: HTMLMediaElement): void;
 
-     /**
 
-      * Detach Hls.js from the media
 
-      */
 
-     detachMedia(): void;
 
-     /**
 
-      * Set the source URL. Can be relative or absolute.
 
-      */
 
-     loadSource(url: string): void;
 
-     /**
 
-      * Start loading data from the stream source.
 
-      * Depending on default config, client starts loading automatically when a source is set.
 
-      *
 
-      * @param startPosition - Set the start position to stream from.
 
-      * Defaults to -1 (None: starts from earliest point)
 
-      */
 
-     startLoad(startPosition?: number): void;
 
-     /**
 
-      * Stop loading of any stream data.
 
-      */
 
-     stopLoad(): void;
 
-     /**
 
-      * Resumes stream controller segment loading if previously started.
 
-      */
 
-     resumeBuffering(): void;
 
-     /**
 
-      * Stops stream controller segment loading without changing 'started' state like stopLoad().
 
-      * This allows for media buffering to be paused without interupting playlist loading.
 
-      */
 
-     pauseBuffering(): void;
 
-     /**
 
-      * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)
 
-      */
 
-     swapAudioCodec(): void;
 
-     /**
 
-      * When the media-element fails, this allows to detach and then re-attach it
 
-      * as one call (convenience method).
 
-      *
 
-      * Automatic recovery of media-errors by this process is configurable.
 
-      */
 
-     recoverMediaError(): void;
 
-     removeLevel(levelIndex: number): void;
 
-     /**
 
-      * @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH
 
-      */
 
-     get levels(): Level[];
 
-     /**
 
-      * Index of quality level (variant) currently played
 
-      */
 
-     get currentLevel(): number;
 
-     /**
 
-      * Set quality level index immediately. This will flush the current buffer to replace the quality asap. That means playback will interrupt at least shortly to re-buffer and re-sync eventually. Set to -1 for automatic level selection.
 
-      */
 
-     set currentLevel(newLevel: number);
 
-     /**
 
-      * Index of next quality level loaded as scheduled by stream controller.
 
-      */
 
-     get nextLevel(): number;
 
-     /**
 
-      * Set quality level index for next loaded data.
 
-      * This will switch the video quality asap, without interrupting playback.
 
-      * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).
 
-      * @param newLevel - Pass -1 for automatic level selection
 
-      */
 
-     set nextLevel(newLevel: number);
 
-     /**
 
-      * Return the quality level of the currently or last (of none is loaded currently) segment
 
-      */
 
-     get loadLevel(): number;
 
-     /**
 
-      * Set quality level index for next loaded data in a conservative way.
 
-      * This will switch the quality without flushing, but interrupt current loading.
 
-      * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.
 
-      * @param newLevel - Pass -1 for automatic level selection
 
-      */
 
-     set loadLevel(newLevel: number);
 
-     /**
 
-      * get next quality level loaded
 
-      */
 
-     get nextLoadLevel(): number;
 
-     /**
 
-      * Set quality level of next loaded segment in a fully "non-destructive" way.
 
-      * Same as `loadLevel` but will wait for next switch (until current loading is done).
 
-      */
 
-     set nextLoadLevel(level: number);
 
-     /**
 
-      * Return "first level": like a default level, if not set,
 
-      * falls back to index of first level referenced in manifest
 
-      */
 
-     get firstLevel(): number;
 
-     /**
 
-      * Sets "first-level", see getter.
 
-      */
 
-     set firstLevel(newLevel: number);
 
-     /**
 
-      * Return the desired start level for the first fragment that will be loaded.
 
-      * The default value of -1 indicates automatic start level selection.
 
-      * Setting hls.nextAutoLevel without setting a startLevel will result in
 
-      * the nextAutoLevel value being used for one fragment load.
 
-      */
 
-     get startLevel(): number;
 
-     /**
 
-      * set  start level (level of first fragment that will be played back)
 
-      * if not overrided by user, first level appearing in manifest will be used as start level
 
-      * if -1 : automatic start level selection, playback will start from level matching download bandwidth
 
-      * (determined from download of first segment)
 
-      */
 
-     set startLevel(newLevel: number);
 
-     /**
 
-      * Whether level capping is enabled.
 
-      * Default value is set via `config.capLevelToPlayerSize`.
 
-      */
 
-     get capLevelToPlayerSize(): boolean;
 
-     /**
 
-      * Enables or disables level capping. If disabled after previously enabled, `nextLevelSwitch` will be immediately called.
 
-      */
 
-     set capLevelToPlayerSize(shouldStartCapping: boolean);
 
-     /**
 
-      * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)
 
-      */
 
-     get autoLevelCapping(): number;
 
-     /**
 
-      * Returns the current bandwidth estimate in bits per second, when available. Otherwise, `NaN` is returned.
 
-      */
 
-     get bandwidthEstimate(): number;
 
-     set bandwidthEstimate(abrEwmaDefaultEstimate: number);
 
-     /**
 
-      * get time to first byte estimate
 
-      * @type {number}
 
-      */
 
-     get ttfbEstimate(): number;
 
-     /**
 
-      * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)
 
-      */
 
-     set autoLevelCapping(newLevel: number);
 
-     get maxHdcpLevel(): HdcpLevel;
 
-     set maxHdcpLevel(value: HdcpLevel);
 
-     /**
 
-      * True when automatic level selection enabled
 
-      */
 
-     get autoLevelEnabled(): boolean;
 
-     /**
 
-      * Level set manually (if any)
 
-      */
 
-     get manualLevel(): number;
 
-     /**
 
-      * min level selectable in auto mode according to config.minAutoBitrate
 
-      */
 
-     get minAutoLevel(): number;
 
-     /**
 
-      * max level selectable in auto mode according to autoLevelCapping
 
-      */
 
-     get maxAutoLevel(): number;
 
-     get firstAutoLevel(): number;
 
-     /**
 
-      * next automatically selected quality level
 
-      */
 
-     get nextAutoLevel(): number;
 
-     /**
 
-      * this setter is used to force next auto level.
 
-      * this is useful to force a switch down in auto mode:
 
-      * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)
 
-      * forced value is valid for one fragment. upon successful frag loading at forced level,
 
-      * this value will be resetted to -1 by ABR controller.
 
-      */
 
-     set nextAutoLevel(nextLevel: number);
 
-     /**
 
-      * get the datetime value relative to media.currentTime for the active level Program Date Time if present
 
-      */
 
-     get playingDate(): Date | null;
 
-     get mainForwardBufferInfo(): BufferInfo | null;
 
-     /**
 
-      * Find and select the best matching audio track, making a level switch when a Group change is necessary.
 
-      * Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
 
-      */
 
-     setAudioOption(audioOption: MediaPlaylist | AudioSelectionOption | undefined): MediaPlaylist | null;
 
-     /**
 
-      * Find and select the best matching subtitle track, making a level switch when a Group change is necessary.
 
-      * Updates `hls.config.subtitlePreference`. Returns the selected track, or null when no matching track is found.
 
-      */
 
-     setSubtitleOption(subtitleOption: MediaPlaylist | SubtitleSelectionOption | undefined): MediaPlaylist | null;
 
-     /**
 
-      * Get the complete list of audio tracks across all media groups
 
-      */
 
-     get allAudioTracks(): Array<MediaPlaylist>;
 
-     /**
 
-      * Get the list of selectable audio tracks
 
-      */
 
-     get audioTracks(): Array<MediaPlaylist>;
 
-     /**
 
-      * index of the selected audio track (index in audio track lists)
 
-      */
 
-     get audioTrack(): number;
 
-     /**
 
-      * selects an audio track, based on its index in audio track lists
 
-      */
 
-     set audioTrack(audioTrackId: number);
 
-     /**
 
-      * get the complete list of subtitle tracks across all media groups
 
-      */
 
-     get allSubtitleTracks(): Array<MediaPlaylist>;
 
-     /**
 
-      * get alternate subtitle tracks list from playlist
 
-      */
 
-     get subtitleTracks(): Array<MediaPlaylist>;
 
-     /**
 
-      * index of the selected subtitle track (index in subtitle track lists)
 
-      */
 
-     get subtitleTrack(): number;
 
-     get media(): HTMLMediaElement | null;
 
-     /**
 
-      * select an subtitle track, based on its index in subtitle track lists
 
-      */
 
-     set subtitleTrack(subtitleTrackId: number);
 
-     /**
 
-      * Whether subtitle display is enabled or not
 
-      */
 
-     get subtitleDisplay(): boolean;
 
-     /**
 
-      * Enable/disable subtitle display rendering
 
-      */
 
-     set subtitleDisplay(value: boolean);
 
-     /**
 
-      * get mode for Low-Latency HLS loading
 
-      */
 
-     get lowLatencyMode(): boolean;
 
-     /**
 
-      * Enable/disable Low-Latency HLS part playlist and segment loading, and start live streams at playlist PART-HOLD-BACK rather than HOLD-BACK.
 
-      */
 
-     set lowLatencyMode(mode: boolean);
 
-     /**
 
-      * Position (in seconds) of live sync point (ie edge of live position minus safety delay defined by ```hls.config.liveSyncDuration```)
 
-      * @returns null prior to loading live Playlist
 
-      */
 
-     get liveSyncPosition(): number | null;
 
-     /**
 
-      * Estimated position (in seconds) of live edge (ie edge of live playlist plus time sync playlist advanced)
 
-      * @returns 0 before first playlist is loaded
 
-      */
 
-     get latency(): number;
 
-     /**
 
-      * maximum distance from the edge before the player seeks forward to ```hls.liveSyncPosition```
 
-      * configured using ```liveMaxLatencyDurationCount``` (multiple of target duration) or ```liveMaxLatencyDuration```
 
-      * @returns 0 before first playlist is loaded
 
-      */
 
-     get maxLatency(): number;
 
-     /**
 
-      * target distance from the edge as calculated by the latency controller
 
-      */
 
-     get targetLatency(): number | null;
 
-     /**
 
-      * the rate at which the edge of the current live playlist is advancing or 1 if there is none
 
-      */
 
-     get drift(): number | null;
 
-     /**
 
-      * set to true when startLoad is called before MANIFEST_PARSED event
 
-      */
 
-     get forceStartLoad(): boolean;
 
- }
 
- export default Hls;
 
- export declare interface HlsChunkPerformanceTiming extends HlsPerformanceTiming {
 
-     executeStart: number;
 
-     executeEnd: number;
 
- }
 
- export declare type HlsConfig = {
 
-     debug: boolean | ILogger;
 
-     enableWorker: boolean;
 
-     workerPath: null | string;
 
-     enableSoftwareAES: boolean;
 
-     minAutoBitrate: number;
 
-     ignoreDevicePixelRatio: boolean;
 
-     preferManagedMediaSource: boolean;
 
-     loader: {
 
-         new (confg: HlsConfig): Loader<LoaderContext>;
 
-     };
 
-     fLoader?: FragmentLoaderConstructor;
 
-     pLoader?: PlaylistLoaderConstructor;
 
-     fetchSetup?: (context: LoaderContext, initParams: any) => Request;
 
-     xhrSetup?: (xhr: XMLHttpRequest, url: string) => Promise<void> | void;
 
-     audioStreamController?: typeof AudioStreamController;
 
-     audioTrackController?: typeof AudioTrackController;
 
-     subtitleStreamController?: typeof SubtitleStreamController;
 
-     subtitleTrackController?: typeof SubtitleTrackController;
 
-     timelineController?: typeof TimelineController;
 
-     emeController?: typeof EMEController;
 
-     cmcd?: CMCDControllerConfig;
 
-     cmcdController?: typeof CMCDController;
 
-     contentSteeringController?: typeof ContentSteeringController;
 
-     useMediaCapabilities: boolean;
 
-     abrController: typeof AbrController;
 
-     bufferController: typeof BufferController;
 
-     capLevelController: typeof CapLevelController;
 
-     errorController: typeof ErrorController;
 
-     fpsController: typeof FPSController;
 
-     progressive: boolean;
 
-     lowLatencyMode: boolean;
 
- } & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & LevelControllerConfig & MP4RemuxerConfig & StreamControllerConfig & SelectionPreferences & LatencyControllerConfig & MetadataControllerConfig & TimelineControllerConfig & TSDemuxerConfig & HlsLoadPolicies & FragmentLoaderConfig & PlaylistLoaderConfig;
 
- export declare interface HlsEventEmitter {
 
-     on<E extends keyof HlsListeners, Context = undefined>(event: E, listener: HlsListeners[E], context?: Context): void;
 
-     once<E extends keyof HlsListeners, Context = undefined>(event: E, listener: HlsListeners[E], context?: Context): void;
 
-     removeAllListeners<E extends keyof HlsListeners>(event?: E): void;
 
-     off<E extends keyof HlsListeners, Context = undefined>(event: E, listener?: HlsListeners[E], context?: Context, once?: boolean): void;
 
-     listeners<E extends keyof HlsListeners>(event: E): HlsListeners[E][];
 
-     emit<E extends keyof HlsListeners>(event: E, name: E, eventObject: Parameters<HlsListeners[E]>[1]): boolean;
 
-     listenerCount<E extends keyof HlsListeners>(event: E): number;
 
- }
 
- /**
 
-  * Defines each Event type and payload by Event name. Used in {@link hls.js#HlsEventEmitter} to strongly type the event listener API.
 
-  */
 
- export declare interface HlsListeners {
 
-     [Events.MEDIA_ATTACHING]: (event: Events.MEDIA_ATTACHING, data: MediaAttachingData) => void;
 
-     [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
 
-     [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
 
-     [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
 
-     [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
 
-     [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
 
-     [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
 
-     [Events.BUFFER_APPENDING]: (event: Events.BUFFER_APPENDING, data: BufferAppendingData) => void;
 
-     [Events.BUFFER_APPENDED]: (event: Events.BUFFER_APPENDED, data: BufferAppendedData) => void;
 
-     [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void;
 
-     [Events.BUFFER_FLUSHING]: (event: Events.BUFFER_FLUSHING, data: BufferFlushingData) => void;
 
-     [Events.BUFFER_FLUSHED]: (event: Events.BUFFER_FLUSHED, data: BufferFlushedData) => void;
 
-     [Events.MANIFEST_LOADING]: (event: Events.MANIFEST_LOADING, data: ManifestLoadingData) => void;
 
-     [Events.MANIFEST_LOADED]: (event: Events.MANIFEST_LOADED, data: ManifestLoadedData) => void;
 
-     [Events.MANIFEST_PARSED]: (event: Events.MANIFEST_PARSED, data: ManifestParsedData) => void;
 
-     [Events.LEVEL_SWITCHING]: (event: Events.LEVEL_SWITCHING, data: LevelSwitchingData) => void;
 
-     [Events.LEVEL_SWITCHED]: (event: Events.LEVEL_SWITCHED, data: LevelSwitchedData) => void;
 
-     [Events.LEVEL_LOADING]: (event: Events.LEVEL_LOADING, data: LevelLoadingData) => void;
 
-     [Events.LEVEL_LOADED]: (event: Events.LEVEL_LOADED, data: LevelLoadedData) => void;
 
-     [Events.LEVEL_UPDATED]: (event: Events.LEVEL_UPDATED, data: LevelUpdatedData) => void;
 
-     [Events.LEVEL_PTS_UPDATED]: (event: Events.LEVEL_PTS_UPDATED, data: LevelPTSUpdatedData) => void;
 
-     [Events.LEVELS_UPDATED]: (event: Events.LEVELS_UPDATED, data: LevelsUpdatedData) => void;
 
-     [Events.AUDIO_TRACKS_UPDATED]: (event: Events.AUDIO_TRACKS_UPDATED, data: AudioTracksUpdatedData) => void;
 
-     [Events.AUDIO_TRACK_SWITCHING]: (event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData) => void;
 
-     [Events.AUDIO_TRACK_SWITCHED]: (event: Events.AUDIO_TRACK_SWITCHED, data: AudioTrackSwitchedData) => void;
 
-     [Events.AUDIO_TRACK_LOADING]: (event: Events.AUDIO_TRACK_LOADING, data: TrackLoadingData) => void;
 
-     [Events.AUDIO_TRACK_LOADED]: (event: Events.AUDIO_TRACK_LOADED, data: AudioTrackLoadedData) => void;
 
-     [Events.SUBTITLE_TRACKS_UPDATED]: (event: Events.SUBTITLE_TRACKS_UPDATED, data: SubtitleTracksUpdatedData) => void;
 
-     [Events.SUBTITLE_TRACKS_CLEARED]: (event: Events.SUBTITLE_TRACKS_CLEARED) => void;
 
-     [Events.SUBTITLE_TRACK_SWITCH]: (event: Events.SUBTITLE_TRACK_SWITCH, data: SubtitleTrackSwitchData) => void;
 
-     [Events.SUBTITLE_TRACK_LOADING]: (event: Events.SUBTITLE_TRACK_LOADING, data: TrackLoadingData) => void;
 
-     [Events.SUBTITLE_TRACK_LOADED]: (event: Events.SUBTITLE_TRACK_LOADED, data: SubtitleTrackLoadedData) => void;
 
-     [Events.SUBTITLE_FRAG_PROCESSED]: (event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessedData) => void;
 
-     [Events.CUES_PARSED]: (event: Events.CUES_PARSED, data: CuesParsedData) => void;
 
-     [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (event: Events.NON_NATIVE_TEXT_TRACKS_FOUND, data: NonNativeTextTracksData) => void;
 
-     [Events.INIT_PTS_FOUND]: (event: Events.INIT_PTS_FOUND, data: InitPTSFoundData) => void;
 
-     [Events.FRAG_LOADING]: (event: Events.FRAG_LOADING, data: FragLoadingData) => void;
 
-     [Events.FRAG_LOAD_EMERGENCY_ABORTED]: (event: Events.FRAG_LOAD_EMERGENCY_ABORTED, data: FragLoadEmergencyAbortedData) => void;
 
-     [Events.FRAG_LOADED]: (event: Events.FRAG_LOADED, data: FragLoadedData) => void;
 
-     [Events.FRAG_DECRYPTED]: (event: Events.FRAG_DECRYPTED, data: FragDecryptedData) => void;
 
-     [Events.FRAG_PARSING_INIT_SEGMENT]: (event: Events.FRAG_PARSING_INIT_SEGMENT, data: FragParsingInitSegmentData) => void;
 
-     [Events.FRAG_PARSING_USERDATA]: (event: Events.FRAG_PARSING_USERDATA, data: FragParsingUserdataData) => void;
 
-     [Events.FRAG_PARSING_METADATA]: (event: Events.FRAG_PARSING_METADATA, data: FragParsingMetadataData) => void;
 
-     [Events.FRAG_PARSED]: (event: Events.FRAG_PARSED, data: FragParsedData) => void;
 
-     [Events.FRAG_BUFFERED]: (event: Events.FRAG_BUFFERED, data: FragBufferedData) => void;
 
-     [Events.FRAG_CHANGED]: (event: Events.FRAG_CHANGED, data: FragChangedData) => void;
 
-     [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void;
 
-     [Events.FPS_DROP_LEVEL_CAPPING]: (event: Events.FPS_DROP_LEVEL_CAPPING, data: FPSDropLevelCappingData) => void;
 
-     [Events.MAX_AUTO_LEVEL_UPDATED]: (event: Events.MAX_AUTO_LEVEL_UPDATED, data: MaxAutoLevelUpdatedData) => void;
 
-     [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void;
 
-     [Events.DESTROYING]: (event: Events.DESTROYING) => void;
 
-     [Events.KEY_LOADING]: (event: Events.KEY_LOADING, data: KeyLoadingData) => void;
 
-     [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void;
 
-     [Events.LIVE_BACK_BUFFER_REACHED]: (event: Events.LIVE_BACK_BUFFER_REACHED, data: LiveBackBufferData) => void;
 
-     [Events.BACK_BUFFER_REACHED]: (event: Events.BACK_BUFFER_REACHED, data: BackBufferData) => void;
 
-     [Events.STEERING_MANIFEST_LOADED]: (event: Events.STEERING_MANIFEST_LOADED, data: SteeringManifestLoadedData) => void;
 
- }
 
- export declare type HlsLoadPolicies = {
 
-     fragLoadPolicy: LoadPolicy;
 
-     keyLoadPolicy: LoadPolicy;
 
-     certLoadPolicy: LoadPolicy;
 
-     playlistLoadPolicy: LoadPolicy;
 
-     manifestLoadPolicy: LoadPolicy;
 
-     steeringManifestLoadPolicy: LoadPolicy;
 
- };
 
- export declare interface HlsPerformanceTiming {
 
-     start: number;
 
-     end: number;
 
- }
 
- export declare interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming {
 
-     first: number;
 
- }
 
- export declare const enum HlsSkip {
 
-     No = "",
 
-     Yes = "YES",
 
-     v2 = "v2"
 
- }
 
- export declare class HlsUrlParameters {
 
-     msn?: number;
 
-     part?: number;
 
-     skip?: HlsSkip;
 
-     constructor(msn?: number, part?: number, skip?: HlsSkip);
 
-     addDirectives(uri: string): string | never;
 
- }
 
- export declare type IErrorAction = {
 
-     action: NetworkErrorAction;
 
-     flags: ErrorActionFlags;
 
-     retryCount?: number;
 
-     retryConfig?: RetryConfig;
 
-     hdcpLevel?: HdcpLevel;
 
-     nextAutoLevel?: number;
 
-     resolved?: boolean;
 
- };
 
- declare interface ILogFunction {
 
-     (message?: any, ...optionalParams: any[]): void;
 
- }
 
- export declare interface ILogger {
 
-     trace: ILogFunction;
 
-     debug: ILogFunction;
 
-     log: ILogFunction;
 
-     warn: ILogFunction;
 
-     info: ILogFunction;
 
-     error: ILogFunction;
 
- }
 
- export declare interface InitPTSFoundData {
 
-     id: string;
 
-     frag: Fragment;
 
-     initPTS: number;
 
-     timescale: number;
 
- }
 
- declare interface InitSegmentData {
 
-     tracks?: TrackSet;
 
-     initPTS: number | undefined;
 
-     timescale: number | undefined;
 
- }
 
- export declare interface KeyLoadedData {
 
-     frag: Fragment;
 
-     keyInfo: KeyLoaderInfo;
 
- }
 
- declare class KeyLoader implements ComponentAPI {
 
-     private readonly config;
 
-     keyUriToKeyInfo: {
 
-         [keyuri: string]: KeyLoaderInfo;
 
-     };
 
-     emeController: EMEController | null;
 
-     constructor(config: HlsConfig);
 
-     abort(type?: PlaylistLevelType): void;
 
-     detach(): void;
 
-     destroy(): void;
 
-     createKeyLoadError(frag: Fragment, details: ErrorDetails | undefined, error: Error, networkDetails?: any, response?: {
 
-         url: string;
 
-         data: undefined;
 
-         code: number;
 
-         text: string;
 
-     }): LoadError;
 
-     loadClear(loadingFrag: Fragment, encryptedFragments: Fragment[]): void | Promise<void>;
 
-     load(frag: Fragment): Promise<KeyLoadedData>;
 
-     loadInternal(frag: Fragment, keySystemFormat?: KeySystemFormats): Promise<KeyLoadedData>;
 
-     loadKeyEME(keyInfo: KeyLoaderInfo, frag: Fragment): Promise<KeyLoadedData>;
 
-     loadKeyHTTP(keyInfo: KeyLoaderInfo, frag: Fragment): Promise<KeyLoadedData>;
 
-     private resetLoader;
 
- }
 
- declare interface KeyLoaderContext extends LoaderContext {
 
-     keyInfo: KeyLoaderInfo;
 
-     frag: Fragment;
 
- }
 
- declare interface KeyLoaderInfo {
 
-     decryptdata: LevelKey;
 
-     keyLoadPromise: Promise<KeyLoadedData> | null;
 
-     loader: Loader<KeyLoaderContext> | null;
 
-     mediaKeySessionContext: MediaKeySessionContext | null;
 
- }
 
- export declare interface KeyLoadingData {
 
-     frag: Fragment;
 
- }
 
- export declare const enum KeySystemFormats {
 
-     CLEARKEY = "org.w3.clearkey",
 
-     FAIRPLAY = "com.apple.streamingkeydelivery",
 
-     PLAYREADY = "com.microsoft.playready",
 
-     WIDEVINE = "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
 
- }
 
- /**
 
-  * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess
 
-  */
 
- export declare const enum KeySystems {
 
-     CLEARKEY = "org.w3.clearkey",
 
-     FAIRPLAY = "com.apple.fps",
 
-     PLAYREADY = "com.microsoft.playready",
 
-     WIDEVINE = "com.widevine.alpha"
 
- }
 
- export declare type LatencyControllerConfig = {
 
-     liveSyncDurationCount: number;
 
-     liveMaxLatencyDurationCount: number;
 
-     liveSyncDuration?: number;
 
-     liveMaxLatencyDuration?: number;
 
-     maxLiveSyncPlaybackRate: number;
 
- };
 
- export declare class Level {
 
-     readonly _attrs: LevelAttributes[];
 
-     readonly audioCodec: string | undefined;
 
-     readonly bitrate: number;
 
-     readonly codecSet: string;
 
-     readonly url: string[];
 
-     readonly frameRate: number;
 
-     readonly height: number;
 
-     readonly id: number;
 
-     readonly name: string;
 
-     readonly videoCodec: string | undefined;
 
-     readonly width: number;
 
-     details?: LevelDetails;
 
-     fragmentError: number;
 
-     loadError: number;
 
-     loaded?: {
 
-         bytes: number;
 
-         duration: number;
 
-     };
 
-     realBitrate: number;
 
-     supportedPromise?: Promise<MediaDecodingInfo>;
 
-     supportedResult?: MediaDecodingInfo;
 
-     private _avgBitrate;
 
-     private _audioGroups?;
 
-     private _subtitleGroups?;
 
-     private readonly _urlId;
 
-     constructor(data: LevelParsed | MediaPlaylist);
 
-     get maxBitrate(): number;
 
-     get averageBitrate(): number;
 
-     get attrs(): LevelAttributes;
 
-     get codecs(): string;
 
-     get pathwayId(): string;
 
-     get videoRange(): VideoRange;
 
-     get score(): number;
 
-     get uri(): string;
 
-     hasAudioGroup(groupId: string | undefined): boolean;
 
-     hasSubtitleGroup(groupId: string | undefined): boolean;
 
-     get audioGroups(): (string | undefined)[] | undefined;
 
-     get subtitleGroups(): (string | undefined)[] | undefined;
 
-     addGroupId(type: string, groupId: string | undefined): void;
 
-     get urlId(): number;
 
-     set urlId(value: number);
 
-     get audioGroupIds(): (string | undefined)[] | undefined;
 
-     get textGroupIds(): (string | undefined)[] | undefined;
 
-     get audioGroupId(): string | undefined;
 
-     get textGroupId(): string | undefined;
 
-     addFallback(): void;
 
- }
 
- export declare interface LevelAttributes extends AttrList {
 
-     'ALLOWED-CPC'?: string;
 
-     AUDIO?: string;
 
-     'AVERAGE-BANDWIDTH'?: string;
 
-     BANDWIDTH?: string;
 
-     'CLOSED-CAPTIONS'?: string;
 
-     CODECS?: string;
 
-     'FRAME-RATE'?: string;
 
-     'HDCP-LEVEL'?: 'TYPE-0' | 'TYPE-1' | 'NONE';
 
-     'PATHWAY-ID'?: string;
 
-     RESOLUTION?: string;
 
-     SCORE?: string;
 
-     'STABLE-VARIANT-ID'?: string;
 
-     SUBTITLES?: string;
 
-     'SUPPLEMENTAL-CODECS'?: string;
 
-     VIDEO?: string;
 
-     'VIDEO-RANGE'?: VideoRange;
 
- }
 
- export declare type LevelControllerConfig = {
 
-     startLevel?: number;
 
- };
 
- /**
 
-  * Object representing parsed data from an HLS Media Playlist. Found in {@link hls.js#Level.details}.
 
-  */
 
- export declare class LevelDetails {
 
-     PTSKnown: boolean;
 
-     alignedSliding: boolean;
 
-     averagetargetduration?: number;
 
-     endCC: number;
 
-     endSN: number;
 
-     fragments: Fragment[];
 
-     fragmentHint?: Fragment;
 
-     partList: Part[] | null;
 
-     dateRanges: Record<string, DateRange>;
 
-     live: boolean;
 
-     ageHeader: number;
 
-     advancedDateTime?: number;
 
-     updated: boolean;
 
-     advanced: boolean;
 
-     availabilityDelay?: number;
 
-     misses: number;
 
-     startCC: number;
 
-     startSN: number;
 
-     startTimeOffset: number | null;
 
-     targetduration: number;
 
-     totalduration: number;
 
-     type: string | null;
 
-     url: string;
 
-     m3u8: string;
 
-     version: number | null;
 
-     canBlockReload: boolean;
 
-     canSkipUntil: number;
 
-     canSkipDateRanges: boolean;
 
-     skippedSegments: number;
 
-     recentlyRemovedDateranges?: string[];
 
-     partHoldBack: number;
 
-     holdBack: number;
 
-     partTarget: number;
 
-     preloadHint?: AttrList;
 
-     renditionReports?: AttrList[];
 
-     tuneInGoal: number;
 
-     deltaUpdateFailed?: boolean;
 
-     driftStartTime: number;
 
-     driftEndTime: number;
 
-     driftStart: number;
 
-     driftEnd: number;
 
-     encryptedFragments: Fragment[];
 
-     playlistParsingError: Error | null;
 
-     variableList: VariableMap | null;
 
-     hasVariableRefs: boolean;
 
-     constructor(baseUrl: string);
 
-     reloaded(previous: LevelDetails | undefined): void;
 
-     get hasProgramDateTime(): boolean;
 
-     get levelTargetDuration(): number;
 
-     get drift(): number;
 
-     get edge(): number;
 
-     get partEnd(): number;
 
-     get fragmentEnd(): number;
 
-     get age(): number;
 
-     get lastPartIndex(): number;
 
-     get lastPartSn(): number;
 
- }
 
- export declare class LevelKey implements DecryptData {
 
-     readonly uri: string;
 
-     readonly method: string;
 
-     readonly keyFormat: string;
 
-     readonly keyFormatVersions: number[];
 
-     readonly encrypted: boolean;
 
-     readonly isCommonEncryption: boolean;
 
-     iv: Uint8Array | null;
 
-     key: Uint8Array | null;
 
-     keyId: Uint8Array | null;
 
-     pssh: Uint8Array | null;
 
-     static clearKeyUriToKeyIdMap(): void;
 
-     constructor(method: string, uri: string, format: string, formatversions?: number[], iv?: Uint8Array | null);
 
-     isSupported(): boolean;
 
-     getDecryptData(sn: number | 'initSegment'): LevelKey | null;
 
- }
 
- export declare interface LevelLoadedData {
 
-     details: LevelDetails;
 
-     id: number;
 
-     level: number;
 
-     networkDetails: any;
 
-     stats: LoaderStats;
 
-     deliveryDirectives: HlsUrlParameters | null;
 
- }
 
- export declare interface LevelLoadingData {
 
-     id: number;
 
-     level: number;
 
-     pathwayId: string | undefined;
 
-     url: string;
 
-     deliveryDirectives: HlsUrlParameters | null;
 
- }
 
- export declare interface LevelParsed {
 
-     attrs: LevelAttributes;
 
-     audioCodec?: string;
 
-     bitrate: number;
 
-     details?: LevelDetails;
 
-     height?: number;
 
-     id?: number;
 
-     name: string;
 
-     textCodec?: string;
 
-     unknownCodecs?: string[];
 
-     url: string;
 
-     videoCodec?: string;
 
-     width?: number;
 
- }
 
- export declare interface LevelPTSUpdatedData {
 
-     details: LevelDetails;
 
-     level: Level;
 
-     drift: number;
 
-     type: string;
 
-     frag: Fragment;
 
-     start: number;
 
-     end: number;
 
- }
 
- export declare interface LevelsUpdatedData {
 
-     levels: Array<Level>;
 
- }
 
- export declare interface LevelSwitchedData {
 
-     level: number;
 
- }
 
- export declare interface LevelSwitchingData {
 
-     level: number;
 
-     attrs: LevelAttributes;
 
-     details: LevelDetails | undefined;
 
-     bitrate: number;
 
-     averageBitrate: number;
 
-     maxBitrate: number;
 
-     realBitrate: number;
 
-     width: number;
 
-     height: number;
 
-     codecSet: string;
 
-     audioCodec: string | undefined;
 
-     videoCodec: string | undefined;
 
-     audioGroups: (string | undefined)[] | undefined;
 
-     subtitleGroups: (string | undefined)[] | undefined;
 
-     loaded: {
 
-         bytes: number;
 
-         duration: number;
 
-     } | undefined;
 
-     loadError: number;
 
-     fragmentError: number;
 
-     name: string | undefined;
 
-     id: number;
 
-     uri: string;
 
-     url: string[];
 
-     urlId: 0;
 
-     audioGroupIds: (string | undefined)[] | undefined;
 
-     textGroupIds: (string | undefined)[] | undefined;
 
- }
 
- export declare interface LevelUpdatedData {
 
-     details: LevelDetails;
 
-     level: number;
 
- }
 
- /**
 
-  * @deprecated Use BackBufferData
 
-  */
 
- export declare interface LiveBackBufferData extends BackBufferData {
 
- }
 
- export declare interface Loader<T extends LoaderContext> {
 
-     destroy(): void;
 
-     abort(): void;
 
-     load(context: T, config: LoaderConfiguration, callbacks: LoaderCallbacks<T>): void;
 
-     /**
 
-      * `getCacheAge()` is called by hls.js to get the duration that a given object
 
-      * has been sitting in a cache proxy when playing live.  If implemented,
 
-      * this should return a value in seconds.
 
-      *
 
-      * For HTTP based loaders, this should return the contents of the "age" header.
 
-      *
 
-      * @returns time object being lodaded
 
-      */
 
-     getCacheAge?: () => number | null;
 
-     getResponseHeader?: (name: string) => string | null;
 
-     context: T | null;
 
-     stats: LoaderStats;
 
- }
 
- export declare interface LoaderCallbacks<T extends LoaderContext> {
 
-     onSuccess: LoaderOnSuccess<T>;
 
-     onError: LoaderOnError<T>;
 
-     onTimeout: LoaderOnTimeout<T>;
 
-     onAbort?: LoaderOnAbort<T>;
 
-     onProgress?: LoaderOnProgress<T>;
 
- }
 
- export declare type LoaderConfig = {
 
-     maxTimeToFirstByteMs: number;
 
-     maxLoadTimeMs: number;
 
-     timeoutRetry: RetryConfig | null;
 
-     errorRetry: RetryConfig | null;
 
- };
 
- export declare interface LoaderConfiguration {
 
-     loadPolicy: LoaderConfig;
 
-     /**
 
-      * @deprecated use LoaderConfig timeoutRetry and errorRetry maxNumRetry
 
-      */
 
-     maxRetry: number;
 
-     /**
 
-      * @deprecated use LoaderConfig maxTimeToFirstByteMs and maxLoadTimeMs
 
-      */
 
-     timeout: number;
 
-     /**
 
-      * @deprecated use LoaderConfig timeoutRetry and errorRetry retryDelayMs
 
-      */
 
-     retryDelay: number;
 
-     /**
 
-      * @deprecated use LoaderConfig timeoutRetry and errorRetry maxRetryDelayMs
 
-      */
 
-     maxRetryDelay: number;
 
-     highWaterMark?: number;
 
- }
 
- export declare interface LoaderContext {
 
-     url: string;
 
-     responseType: string;
 
-     headers?: Record<string, string>;
 
-     rangeStart?: number;
 
-     rangeEnd?: number;
 
-     progressData?: boolean;
 
- }
 
- export declare type LoaderOnAbort<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: any) => void;
 
- export declare type LoaderOnError<T extends LoaderContext> = (error: {
 
-     code: number;
 
-     text: string;
 
- }, context: T, networkDetails: any, stats: LoaderStats) => void;
 
- export declare type LoaderOnProgress<T extends LoaderContext> = (stats: LoaderStats, context: T, data: string | ArrayBuffer, networkDetails: any) => void;
 
- export declare type LoaderOnSuccess<T extends LoaderContext> = (response: LoaderResponse, stats: LoaderStats, context: T, networkDetails: any) => void;
 
- export declare type LoaderOnTimeout<T extends LoaderContext> = (stats: LoaderStats, context: T, networkDetails: any) => void;
 
- export declare interface LoaderResponse {
 
-     url: string;
 
-     data?: string | ArrayBuffer | Object;
 
-     code?: number;
 
-     text?: string;
 
- }
 
- declare class LoadError extends Error {
 
-     readonly data: FragLoadFailResult;
 
-     constructor(data: FragLoadFailResult);
 
- }
 
- export declare interface LoaderStats {
 
-     aborted: boolean;
 
-     loaded: number;
 
-     retry: number;
 
-     total: number;
 
-     chunkCount: number;
 
-     bwEstimate: number;
 
-     loading: HlsProgressivePerformanceTiming;
 
-     parsing: HlsPerformanceTiming;
 
-     buffering: HlsProgressivePerformanceTiming;
 
- }
 
- export declare type LoadPolicy = {
 
-     default: LoaderConfig;
 
- };
 
- export declare class LoadStats implements LoaderStats {
 
-     aborted: boolean;
 
-     loaded: number;
 
-     retry: number;
 
-     total: number;
 
-     chunkCount: number;
 
-     bwEstimate: number;
 
-     loading: HlsProgressivePerformanceTiming;
 
-     parsing: HlsPerformanceTiming;
 
-     buffering: HlsProgressivePerformanceTiming;
 
- }
 
- export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
 
- export declare interface ManifestLoadedData {
 
-     audioTracks: MediaPlaylist[];
 
-     captions?: MediaPlaylist[];
 
-     contentSteering: ContentSteeringOptions | null;
 
-     levels: LevelParsed[];
 
-     networkDetails: any;
 
-     sessionData: Record<string, AttrList> | null;
 
-     sessionKeys: LevelKey[] | null;
 
-     startTimeOffset: number | null;
 
-     stats: LoaderStats;
 
-     subtitles?: MediaPlaylist[];
 
-     url: string;
 
-     variableList: VariableMap | null;
 
- }
 
- export declare interface ManifestLoadingData {
 
-     url: string;
 
- }
 
- export declare interface ManifestParsedData {
 
-     levels: Level[];
 
-     audioTracks: MediaPlaylist[];
 
-     subtitleTracks: MediaPlaylist[];
 
-     sessionData: Record<string, AttrList> | null;
 
-     sessionKeys: LevelKey[] | null;
 
-     firstLevel: number;
 
-     stats: LoaderStats;
 
-     audio: boolean;
 
-     video: boolean;
 
-     altAudio: boolean;
 
- }
 
- declare interface MaxAutoLevelUpdatedData {
 
-     autoLevelCapping: number;
 
-     levels: Level[] | null;
 
-     maxAutoLevel: number;
 
-     minAutoLevel: number;
 
-     maxHdcpLevel: HdcpLevel;
 
- }
 
- export declare interface MediaAttachedData {
 
-     media: HTMLMediaElement;
 
-     mediaSource?: MediaSource;
 
- }
 
- export declare interface MediaAttachingData {
 
-     media: HTMLMediaElement;
 
- }
 
- export declare interface MediaAttributes extends AttrList {
 
-     'ASSOC-LANGUAGE'?: string;
 
-     AUTOSELECT?: 'YES' | 'NO';
 
-     CHANNELS?: string;
 
-     CHARACTERISTICS?: string;
 
-     DEFAULT?: 'YES' | 'NO';
 
-     FORCED?: 'YES' | 'NO';
 
-     'GROUP-ID': string;
 
-     'INSTREAM-ID'?: string;
 
-     LANGUAGE?: string;
 
-     NAME: string;
 
-     'PATHWAY-ID'?: string;
 
-     'STABLE-RENDITION-ID'?: string;
 
-     TYPE?: 'AUDIO' | 'VIDEO' | 'SUBTITLES' | 'CLOSED-CAPTIONS';
 
-     URI?: string;
 
- }
 
- export declare type MediaDecodingInfo = {
 
-     supported: boolean;
 
-     configurations: readonly MediaDecodingConfiguration[];
 
-     decodingInfoResults: readonly MediaCapabilitiesDecodingInfo[];
 
-     error?: Error;
 
- };
 
- export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
 
- export declare interface MediaKeySessionContext {
 
-     keySystem: KeySystems;
 
-     mediaKeys: MediaKeys;
 
-     decryptdata: LevelKey;
 
-     mediaKeysSession: MediaKeySession;
 
-     keyStatus: MediaKeyStatus;
 
-     licenseXhr?: XMLHttpRequest;
 
-     _onmessage?: (this: MediaKeySession, ev: MediaKeyMessageEvent) => any;
 
-     _onkeystatuseschange?: (this: MediaKeySession, ev: Event) => any;
 
- }
 
- export declare interface MediaPlaylist {
 
-     attrs: MediaAttributes;
 
-     audioCodec?: string;
 
-     autoselect: boolean;
 
-     bitrate: number;
 
-     channels?: string;
 
-     characteristics?: string;
 
-     details?: LevelDetails;
 
-     height?: number;
 
-     default: boolean;
 
-     forced: boolean;
 
-     groupId: string;
 
-     id: number;
 
-     instreamId?: string;
 
-     lang?: string;
 
-     assocLang?: string;
 
-     name: string;
 
-     textCodec?: string;
 
-     unknownCodecs?: string[];
 
-     type: MediaPlaylistType | 'main';
 
-     url: string;
 
-     videoCodec?: string;
 
-     width?: number;
 
- }
 
- export declare type MediaPlaylistType = MainPlaylistType | SubtitlePlaylistType;
 
- export declare type MetadataControllerConfig = {
 
-     enableDateRangeMetadataCues: boolean;
 
-     enableEmsgMetadataCues: boolean;
 
-     enableID3MetadataCues: boolean;
 
- };
 
- export declare interface MetadataSample {
 
-     pts: number;
 
-     dts: number;
 
-     duration: number;
 
-     len?: number;
 
-     data: Uint8Array;
 
-     type: MetadataSchema;
 
- }
 
- export declare const enum MetadataSchema {
 
-     audioId3 = "org.id3",
 
-     dateRange = "com.apple.quicktime.HLS",
 
-     emsg = "https://aomedia.org/emsg/ID3"
 
- }
 
- export declare type MP4RemuxerConfig = {
 
-     stretchShortVideoTrack: boolean;
 
-     maxAudioFramesDrift: number;
 
- };
 
- export declare interface NetworkComponentAPI extends ComponentAPI {
 
-     startLoad(startPosition: number): void;
 
-     stopLoad(): void;
 
- }
 
- export declare const enum NetworkErrorAction {
 
-     DoNothing = 0,
 
-     SendEndCallback = 1,// Reserved for future use
 
-     SendAlternateToPenaltyBox = 2,
 
-     RemoveAlternatePermanently = 3,// Reserved for future use
 
-     InsertDiscontinuity = 4,// Reserved for future use
 
-     RetryRequest = 5
 
- }
 
- export declare interface NonNativeTextTrack {
 
-     _id?: string;
 
-     label: any;
 
-     kind: string;
 
-     default: boolean;
 
-     closedCaptions?: MediaPlaylist;
 
-     subtitleTrack?: MediaPlaylist;
 
- }
 
- export declare interface NonNativeTextTracksData {
 
-     tracks: Array<NonNativeTextTrack>;
 
- }
 
- declare interface PACData {
 
-     row: number;
 
-     indent: number | null;
 
-     color: string | null;
 
-     underline: boolean;
 
-     italics: boolean;
 
- }
 
- /**
 
-  * Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.
 
-  */
 
- export declare class Part extends BaseSegment {
 
-     readonly fragOffset: number;
 
-     readonly duration: number;
 
-     readonly gap: boolean;
 
-     readonly independent: boolean;
 
-     readonly relurl: string;
 
-     readonly fragment: Fragment;
 
-     readonly index: number;
 
-     stats: LoadStats;
 
-     constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part);
 
-     get start(): number;
 
-     get end(): number;
 
-     get loaded(): boolean;
 
- }
 
- declare interface PartsLoadedData {
 
-     frag: Fragment;
 
-     part: Part | null;
 
-     partsLoaded?: FragLoadedData[];
 
- }
 
- export declare type PathwayClone = {
 
-     'BASE-ID': string;
 
-     ID: string;
 
-     'URI-REPLACEMENT': UriReplacement;
 
- };
 
- declare class PenState {
 
-     foreground: string;
 
-     underline: boolean;
 
-     italics: boolean;
 
-     background: string;
 
-     flash: boolean;
 
-     reset(): void;
 
-     setStyles(styles: Partial<PenStyles>): void;
 
-     isDefault(): boolean;
 
-     equals(other: PenState): boolean;
 
-     copy(newPenState: PenState): void;
 
-     toString(): string;
 
- }
 
- declare type PenStyles = {
 
-     foreground: string | null;
 
-     underline: boolean;
 
-     italics: boolean;
 
-     background: string;
 
-     flash: boolean;
 
- };
 
- export declare const enum PlaylistContextType {
 
-     MANIFEST = "manifest",
 
-     LEVEL = "level",
 
-     AUDIO_TRACK = "audioTrack",
 
-     SUBTITLE_TRACK = "subtitleTrack"
 
- }
 
- export declare const enum PlaylistLevelType {
 
-     MAIN = "main",
 
-     AUDIO = "audio",
 
-     SUBTITLE = "subtitle"
 
- }
 
- /**
 
-  * @deprecated use manifestLoadPolicy.default and playlistLoadPolicy.default
 
-  */
 
- export declare type PlaylistLoaderConfig = {
 
-     manifestLoadingTimeOut: number;
 
-     manifestLoadingMaxRetry: number;
 
-     manifestLoadingRetryDelay: number;
 
-     manifestLoadingMaxRetryTimeout: number;
 
-     levelLoadingTimeOut: number;
 
-     levelLoadingMaxRetry: number;
 
-     levelLoadingRetryDelay: number;
 
-     levelLoadingMaxRetryTimeout: number;
 
- };
 
- export declare interface PlaylistLoaderConstructor {
 
-     new (confg: HlsConfig): Loader<PlaylistLoaderContext>;
 
- }
 
- export declare interface PlaylistLoaderContext extends LoaderContext {
 
-     type: PlaylistContextType;
 
-     level: number | null;
 
-     id: number | null;
 
-     groupId?: string;
 
-     pathwayId?: string;
 
-     levelDetails?: LevelDetails;
 
-     deliveryDirectives: HlsUrlParameters | null;
 
- }
 
- declare type RationalTimestamp = {
 
-     baseTime: number;
 
-     timescale: number;
 
- };
 
- declare interface RemuxedMetadata {
 
-     samples: MetadataSample[];
 
- }
 
- declare interface RemuxedTrack {
 
-     data1: Uint8Array;
 
-     data2?: Uint8Array;
 
-     startPTS: number;
 
-     endPTS: number;
 
-     startDTS: number;
 
-     endDTS: number;
 
-     type: SourceBufferName;
 
-     hasAudio: boolean;
 
-     hasVideo: boolean;
 
-     independent?: boolean;
 
-     firstKeyFrame?: number;
 
-     firstKeyFramePTS?: number;
 
-     nb: number;
 
-     transferredData1?: ArrayBuffer;
 
-     transferredData2?: ArrayBuffer;
 
-     dropped?: number;
 
- }
 
- declare interface RemuxedUserdata {
 
-     samples: UserdataSample[];
 
- }
 
- declare interface RemuxerResult {
 
-     audio?: RemuxedTrack;
 
-     video?: RemuxedTrack;
 
-     text?: RemuxedUserdata;
 
-     id3?: RemuxedMetadata;
 
-     initSegment?: InitSegmentData;
 
-     independent?: boolean;
 
- }
 
- export declare type RetryConfig = {
 
-     maxNumRetry: number;
 
-     retryDelayMs: number;
 
-     maxRetryDelayMs: number;
 
-     backoff?: 'exponential' | 'linear';
 
-     shouldRetry?: (retryConfig: RetryConfig | null | undefined, retryCount: number, isTimeout: boolean, loaderResponse: LoaderResponse | undefined, retry: boolean) => boolean;
 
- };
 
- /**
 
-  * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.
 
-  * @constructor
 
-  */
 
- declare class Row {
 
-     chars: StyledUnicodeChar[];
 
-     pos: number;
 
-     currPenState: PenState;
 
-     cueStartTime: number | null;
 
-     private logger;
 
-     constructor(logger: CaptionsLogger);
 
-     equals(other: Row): boolean;
 
-     copy(other: Row): void;
 
-     isEmpty(): boolean;
 
-     /**
 
-      *  Set the cursor to a valid column.
 
-      */
 
-     setCursor(absPos: number): void;
 
-     /**
 
-      * Move the cursor relative to current position.
 
-      */
 
-     moveCursor(relPos: number): void;
 
-     /**
 
-      * Backspace, move one step back and clear character.
 
-      */
 
-     backSpace(): void;
 
-     insertChar(byte: number): void;
 
-     clearFromPos(startPos: number): void;
 
-     clear(): void;
 
-     clearToEndOfRow(): void;
 
-     getTextString(): string;
 
-     setPenStyles(styles: Partial<PenStyles>): void;
 
- }
 
- export declare type SelectionPreferences = {
 
-     videoPreference?: VideoSelectionOption;
 
-     audioPreference?: AudioSelectionOption;
 
-     subtitlePreference?: SubtitleSelectionOption;
 
- };
 
- export declare type SourceBufferName = 'video' | 'audio' | 'audiovideo';
 
- declare type SourceBuffers = Partial<Record<SourceBufferName, ExtendedSourceBuffer>>;
 
- export declare type SteeringManifest = {
 
-     VERSION: 1;
 
-     TTL: number;
 
-     'RELOAD-URI'?: string;
 
-     'PATHWAY-PRIORITY': string[];
 
-     'PATHWAY-CLONES'?: PathwayClone[];
 
- };
 
- export declare interface SteeringManifestLoadedData {
 
-     steeringManifest: SteeringManifest;
 
-     url: string;
 
- }
 
- declare class StreamController extends BaseStreamController implements NetworkComponentAPI {
 
-     private audioCodecSwap;
 
-     private gapController;
 
-     private level;
 
-     private _forceStartLoad;
 
-     private altAudio;
 
-     private audioOnly;
 
-     private fragPlaying;
 
-     private onvplaying;
 
-     private onvseeked;
 
-     private fragLastKbps;
 
-     private couldBacktrack;
 
-     private backtrackFragment;
 
-     private audioCodecSwitch;
 
-     private videoBuffer;
 
-     constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
 
-     private _registerListeners;
 
-     protected _unregisterListeners(): void;
 
-     protected onHandlerDestroying(): void;
 
-     startLoad(startPosition: number): void;
 
-     stopLoad(): void;
 
-     protected doTick(): void;
 
-     protected onTickEnd(): void;
 
-     private doTickIdle;
 
-     protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
 
-     private getBufferedFrag;
 
-     private followingBufferedFrag;
 
-     immediateLevelSwitch(): void;
 
-     /**
 
-      * try to switch ASAP without breaking video playback:
 
-      * in order to ensure smooth but quick level switching,
 
-      * we need to find the next flushable buffer range
 
-      * we should take into account new segment fetch time
 
-      */
 
-     nextLevelSwitch(): void;
 
-     private abortCurrentFrag;
 
-     protected flushMainBuffer(startOffset: number, endOffset: number): void;
 
-     protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
 
-     protected onMediaDetaching(): void;
 
-     private onMediaPlaying;
 
-     private onMediaSeeked;
 
-     private onManifestLoading;
 
-     private onManifestParsed;
 
-     private onLevelLoading;
 
-     private onLevelLoaded;
 
-     protected _handleFragmentLoadProgress(data: FragLoadedData): void;
 
-     private onAudioTrackSwitching;
 
-     private onAudioTrackSwitched;
 
-     private onBufferCreated;
 
-     private onFragBuffered;
 
-     private onError;
 
-     private checkBuffer;
 
-     private onFragLoadEmergencyAborted;
 
-     private onBufferFlushed;
 
-     private onLevelsUpdated;
 
-     swapAudioCodec(): void;
 
-     /**
 
-      * Seeks to the set startPosition if not equal to the mediaElement's current time.
 
-      */
 
-     protected seekToStartPos(): void;
 
-     private _getAudioCodec;
 
-     private _loadBitrateTestFrag;
 
-     private _handleTransmuxComplete;
 
-     private _bufferInitSegment;
 
-     getMainFwdBufferInfo(): BufferInfo | null;
 
-     private backtrack;
 
-     private checkFragmentChanged;
 
-     get nextLevel(): number;
 
-     get currentFrag(): Fragment | null;
 
-     get currentProgramDateTime(): Date | null;
 
-     get currentLevel(): number;
 
-     get nextBufferedFrag(): Fragment | null;
 
-     get forceStartLoad(): boolean;
 
- }
 
- export declare type StreamControllerConfig = {
 
-     autoStartLoad: boolean;
 
-     startPosition: number;
 
-     defaultAudioCodec?: string;
 
-     initialLiveManifestSize: number;
 
-     maxBufferLength: number;
 
-     maxBufferSize: number;
 
-     maxBufferHole: number;
 
-     highBufferWatchdogPeriod: number;
 
-     nudgeOffset: number;
 
-     nudgeMaxRetry: number;
 
-     maxFragLookUpTolerance: number;
 
-     maxMaxBufferLength: number;
 
-     startFragPrefetch: boolean;
 
-     testBandwidth: boolean;
 
- };
 
- /**
 
-  * Unicode character with styling and background.
 
-  * @constructor
 
-  */
 
- declare class StyledUnicodeChar {
 
-     uchar: string;
 
-     penState: PenState;
 
-     reset(): void;
 
-     setChar(uchar: string, newPenState: PenState): void;
 
-     setPenState(newPenState: PenState): void;
 
-     equals(other: StyledUnicodeChar): boolean;
 
-     copy(newChar: StyledUnicodeChar): void;
 
-     isEmpty(): boolean;
 
- }
 
- declare interface SubtitleFragProcessed {
 
-     success: boolean;
 
-     frag: Fragment;
 
- }
 
- export declare interface SubtitleFragProcessedData {
 
-     success: boolean;
 
-     frag: Fragment;
 
-     error?: Error;
 
- }
 
- export declare type SubtitlePlaylistType = 'SUBTITLES' | 'CLOSED-CAPTIONS';
 
- export declare type SubtitleSelectionOption = {
 
-     lang?: string;
 
-     assocLang?: string;
 
-     characteristics?: string;
 
-     name?: string;
 
-     groupId?: string;
 
-     default?: boolean;
 
-     forced?: boolean;
 
- };
 
- export declare class SubtitleStreamController extends BaseStreamController implements NetworkComponentAPI {
 
-     private currentTrackId;
 
-     private tracksBuffered;
 
-     private mainDetails;
 
-     constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
 
-     protected onHandlerDestroying(): void;
 
-     private _registerListeners;
 
-     private _unregisterListeners;
 
-     startLoad(startPosition: number): void;
 
-     onManifestLoading(): void;
 
-     onMediaDetaching(): void;
 
-     onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData): void;
 
-     onSubtitleFragProcessed(event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessed): void;
 
-     onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
 
-     onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
 
-     onError(event: Events.ERROR, data: ErrorData): void;
 
-     onSubtitleTracksUpdated(event: Events.SUBTITLE_TRACKS_UPDATED, { subtitleTracks }: SubtitleTracksUpdatedData): void;
 
-     onSubtitleTrackSwitch(event: Events.SUBTITLE_TRACK_SWITCH, data: TrackSwitchedData): void;
 
-     onSubtitleTrackLoaded(event: Events.SUBTITLE_TRACK_LOADED, data: TrackLoadedData): void;
 
-     _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
 
-     doTick(): void;
 
-     protected getMaxBufferLength(mainBufferLength?: number): number;
 
-     protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
 
-     get mediaBufferTimeRanges(): Bufferable;
 
- }
 
- export declare class SubtitleTrackController extends BasePlaylistController {
 
-     private media;
 
-     private tracks;
 
-     private groupIds;
 
-     private tracksInGroup;
 
-     private trackId;
 
-     private currentTrack;
 
-     private selectDefaultTrack;
 
-     private queuedDefaultTrack;
 
-     private asyncPollTrackChange;
 
-     private useTextTrackPolling;
 
-     private subtitlePollingInterval;
 
-     private _subtitleDisplay;
 
-     constructor(hls: Hls);
 
-     destroy(): void;
 
-     get subtitleDisplay(): boolean;
 
-     set subtitleDisplay(value: boolean);
 
-     private registerListeners;
 
-     private unregisterListeners;
 
-     protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
 
-     private pollTrackChange;
 
-     protected onMediaDetaching(): void;
 
-     protected onManifestLoading(): void;
 
-     protected onManifestParsed(event: Events.MANIFEST_PARSED, data: ManifestParsedData): void;
 
-     protected onSubtitleTrackLoaded(event: Events.SUBTITLE_TRACK_LOADED, data: TrackLoadedData): void;
 
-     protected onLevelLoading(event: Events.LEVEL_LOADING, data: LevelLoadingData): void;
 
-     protected onLevelSwitching(event: Events.LEVEL_SWITCHING, data: LevelSwitchingData): void;
 
-     private switchLevel;
 
-     private findTrackId;
 
-     private findTrackForTextTrack;
 
-     protected onError(event: Events.ERROR, data: ErrorData): void;
 
-     get allSubtitleTracks(): MediaPlaylist[];
 
-     /** get alternate subtitle tracks list from playlist **/
 
-     get subtitleTracks(): MediaPlaylist[];
 
-     /** get/set index of the selected subtitle track (based on index in subtitle track lists) **/
 
-     get subtitleTrack(): number;
 
-     set subtitleTrack(newId: number);
 
-     setSubtitleOption(subtitleOption: MediaPlaylist | SubtitleSelectionOption | undefined): MediaPlaylist | null;
 
-     protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void;
 
-     /**
 
-      * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.
 
-      * This operates on the DOM textTracks.
 
-      * A value of -1 will disable all subtitle tracks.
 
-      */
 
-     private toggleTrackModes;
 
-     /**
 
-      * This method is responsible for validating the subtitle index and periodically reloading if live.
 
-      * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.
 
-      */
 
-     private setSubtitleTrack;
 
-     private onTextTracksChanged;
 
- }
 
- export declare interface SubtitleTrackLoadedData extends TrackLoadedData {
 
- }
 
- export declare interface SubtitleTracksUpdatedData {
 
-     subtitleTracks: MediaPlaylist[];
 
- }
 
- export declare interface SubtitleTrackSwitchData {
 
-     id: number;
 
-     name?: string;
 
-     groupId?: string;
 
-     type?: MediaPlaylistType | 'main';
 
-     url?: string;
 
- }
 
- /**
 
-  * @ignore
 
-  * Sub-class specialization of EventHandler base class.
 
-  *
 
-  * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,
 
-  * scheduled asynchroneously, avoiding recursive calls in the same tick.
 
-  *
 
-  * The task itself is implemented in `doTick`. It can be requested and called for single execution
 
-  * using the `tick` method.
 
-  *
 
-  * It will be assured that the task execution method (`tick`) only gets called once per main loop "tick",
 
-  * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.
 
-  *
 
-  * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,
 
-  * and cancelled with `clearNextTick`.
 
-  *
 
-  * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).
 
-  *
 
-  * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.
 
-  *
 
-  * Further explanations:
 
-  *
 
-  * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously
 
-  * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.
 
-  *
 
-  * When the task execution (`tick` method) is called in re-entrant way this is detected and
 
-  * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
 
-  * task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
 
-  */
 
- declare class TaskLoop {
 
-     private readonly _boundTick;
 
-     private _tickTimer;
 
-     private _tickInterval;
 
-     private _tickCallCount;
 
-     constructor();
 
-     destroy(): void;
 
-     protected onHandlerDestroying(): void;
 
-     protected onHandlerDestroyed(): void;
 
-     hasInterval(): boolean;
 
-     hasNextTick(): boolean;
 
-     /**
 
-      * @param millis - Interval time (ms)
 
-      * @eturns True when interval has been scheduled, false when already scheduled (no effect)
 
-      */
 
-     setInterval(millis: number): boolean;
 
-     /**
 
-      * @returns True when interval was cleared, false when none was set (no effect)
 
-      */
 
-     clearInterval(): boolean;
 
-     /**
 
-      * @returns True when timeout was cleared, false when none was set (no effect)
 
-      */
 
-     clearNextTick(): boolean;
 
-     /**
 
-      * Will call the subclass doTick implementation in this main loop tick
 
-      * or in the next one (via setTimeout(,0)) in case it has already been called
 
-      * in this tick (in case this is a re-entrant call).
 
-      */
 
-     tick(): void;
 
-     tickImmediate(): void;
 
-     /**
 
-      * For subclass to implement task logic
 
-      * @abstract
 
-      */
 
-     protected doTick(): void;
 
- }
 
- export declare class TimelineController implements ComponentAPI {
 
-     private hls;
 
-     private media;
 
-     private config;
 
-     private enabled;
 
-     private Cues;
 
-     private textTracks;
 
-     private tracks;
 
-     private initPTS;
 
-     private unparsedVttFrags;
 
-     private captionsTracks;
 
-     private nonNativeCaptionsTracks;
 
-     private cea608Parser1?;
 
-     private cea608Parser2?;
 
-     private lastCc;
 
-     private lastSn;
 
-     private lastPartIndex;
 
-     private prevCC;
 
-     private vttCCs;
 
-     private captionsProperties;
 
-     constructor(hls: Hls);
 
-     destroy(): void;
 
-     private initCea608Parsers;
 
-     addCues(trackName: string, startTime: number, endTime: number, screen: CaptionScreen, cueRanges: Array<[number, number]>): void;
 
-     private onInitPtsFound;
 
-     private getExistingTrack;
 
-     createCaptionsTrack(trackName: string): void;
 
-     private createNativeTrack;
 
-     private createNonNativeTrack;
 
-     private createTextTrack;
 
-     private onMediaAttaching;
 
-     private onMediaDetaching;
 
-     private onManifestLoading;
 
-     private _cleanTracks;
 
-     private onSubtitleTracksUpdated;
 
-     private onManifestLoaded;
 
-     private closedCaptionsForLevel;
 
-     private onFragLoading;
 
-     private onFragLoaded;
 
-     private _parseIMSC1;
 
-     private _parseVTTs;
 
-     private _fallbackToIMSC1;
 
-     private _appendCues;
 
-     private onFragDecrypted;
 
-     private onSubtitleTracksCleared;
 
-     private onFragParsingUserdata;
 
-     onBufferFlushing(event: Events.BUFFER_FLUSHING, { startOffset, endOffset, endOffsetSubtitles, type }: BufferFlushingData): void;
 
-     private extractCea608Data;
 
- }
 
- export declare type TimelineControllerConfig = {
 
-     cueHandler: CuesInterface;
 
-     enableWebVTT: boolean;
 
-     enableIMSC1: boolean;
 
-     enableCEA708Captions: boolean;
 
-     captionsTextTrack1Label: string;
 
-     captionsTextTrack1LanguageCode: string;
 
-     captionsTextTrack2Label: string;
 
-     captionsTextTrack2LanguageCode: string;
 
-     captionsTextTrack3Label: string;
 
-     captionsTextTrack3LanguageCode: string;
 
-     captionsTextTrack4Label: string;
 
-     captionsTextTrack4LanguageCode: string;
 
-     renderTextTracksNatively: boolean;
 
- };
 
- export declare interface Track {
 
-     id: 'audio' | 'main';
 
-     buffer?: SourceBuffer;
 
-     container: string;
 
-     codec?: string;
 
-     initSegment?: Uint8Array;
 
-     levelCodec?: string;
 
-     metadata?: any;
 
- }
 
- export declare interface TrackLoadedData {
 
-     details: LevelDetails;
 
-     id: number;
 
-     groupId: string;
 
-     networkDetails: any;
 
-     stats: LoaderStats;
 
-     deliveryDirectives: HlsUrlParameters | null;
 
- }
 
- export declare interface TrackLoadingData {
 
-     id: number;
 
-     groupId: string;
 
-     url: string;
 
-     deliveryDirectives: HlsUrlParameters | null;
 
- }
 
- export declare interface TrackSet {
 
-     audio?: Track;
 
-     video?: Track;
 
-     audiovideo?: Track;
 
- }
 
- declare interface TrackSwitchedData {
 
-     id: number;
 
- }
 
- declare class TransmuxerInterface {
 
-     error: Error | null;
 
-     private hls;
 
-     private id;
 
-     private observer;
 
-     private frag;
 
-     private part;
 
-     private useWorker;
 
-     private workerContext;
 
-     private onwmsg?;
 
-     private transmuxer;
 
-     private onTransmuxComplete;
 
-     private onFlush;
 
-     constructor(hls: Hls, id: PlaylistLevelType, onTransmuxComplete: (transmuxResult: TransmuxerResult) => void, onFlush: (chunkMeta: ChunkMetadata) => void);
 
-     resetWorker(): void;
 
-     destroy(): void;
 
-     push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag: Fragment, part: Part | null, duration: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata, defaultInitPTS?: RationalTimestamp): void;
 
-     flush(chunkMeta: ChunkMetadata): void;
 
-     private transmuxerError;
 
-     private handleFlushResult;
 
-     private onWorkerMessage;
 
-     private configureTransmuxer;
 
-     private handleTransmuxComplete;
 
- }
 
- declare interface TransmuxerResult {
 
-     remuxResult: RemuxerResult;
 
-     chunkMeta: ChunkMetadata;
 
- }
 
- export declare type TSDemuxerConfig = {
 
-     forceKeyFrameOnDiscontinuity: boolean;
 
- };
 
- export declare type UriReplacement = {
 
-     HOST?: string;
 
-     PARAMS?: {
 
-         [queryParameter: string]: string;
 
-     };
 
-     'PER-VARIANT-URIS'?: {
 
-         [stableVariantId: string]: string;
 
-     };
 
-     'PER-RENDITION-URIS'?: {
 
-         [stableRenditionId: string]: string;
 
-     };
 
- };
 
- export declare interface UserdataSample {
 
-     pts: number;
 
-     bytes?: Uint8Array;
 
-     type?: number;
 
-     payloadType?: number;
 
-     uuid?: string;
 
-     userData?: string;
 
-     userDataBytes?: Uint8Array;
 
- }
 
- export declare type VariableMap = Record<string, string>;
 
- declare const enum VerboseLevel {
 
-     ERROR = 0,
 
-     TEXT = 1,
 
-     WARNING = 2,
 
-     INFO = 2,
 
-     DEBUG = 3,
 
-     DATA = 3
 
- }
 
- declare type VideoRange = (typeof VideoRangeValues)[number];
 
- declare const VideoRangeValues: readonly ["SDR", "PQ", "HLG"];
 
- export declare type VideoSelectionOption = {
 
-     preferHDR?: boolean;
 
-     allowedVideoRanges?: Array<VideoRange>;
 
- };
 
- export { }
 
 
  |