import { ErrorData, Events, FragBufferedData, Hls, HlsConfig, LevelLoadedData, LevelSwitchedData, ManifestParsedData } from '../../../../../../../module/lib/hls'; import { AbstractSourcePlugin, AbstractSourceProcessor, SpecSourceProcessor } from '../../base/source/plugin'; import { AbstractQualityController } from './quality'; declare abstract class AbstractHlsSourcePlugin extends AbstractSourcePlugin { static handle(options: unknown): SpecHlsSourceProcessor; } interface SpecHlsSourceProcessor extends SpecSourceProcessor { protocol: Hls; } declare abstract class AbstractHlsSourceProcessor extends AbstractSourceProcessor implements SpecHlsSourceProcessor { static readonly DURATION_OF_SWAP_AUDIO_CODEC = 1; protected _hls: Hls; protected _url: string; protected _element: HTMLMediaElement; protected _elementEvents: Map; protected _customHlsConfig: HlsConfig; protected _qualityController: AbstractQualityController; protected _lastMediaErrorTime: number; protected _isLowLatencyOptimized: boolean; protected _isFallbackLevelApplied: boolean; get protocol(): Hls; protected abstract _initialize(): void; protected _buildHlsConfig(config: Partial, ...configs: Partial[]): HlsConfig; protected _resetHlsConfig(): void; protected _bindHlsEvents(): void; protected _onHlsError(event: Events, data: ErrorData): void; protected _handleHlsError(data: ErrorData): void; protected _handleHlsFatalError(data: ErrorData): void; protected _handleHlsFatalNetworkError(data: ErrorData): void; protected _handleHlsFatalMediaError(_data: ErrorData): void; protected _handleHlsFatalDefaultError(_data: ErrorData): void; protected get _shouldSwapAudioCodec(): boolean; protected _handleHlsTrivialError(data: ErrorData): void; protected _handleHlsTrivialNetworkError(data: ErrorData): void; protected _handleHlsTrivialOtherError(data: ErrorData): void; protected _onHlsManifestParsed(event: Events, data: ManifestParsedData): void; protected _onHlsLevelLoaded(event: Events, data: LevelLoadedData): void; protected _shouldOptimizeLowLatency(data: LevelLoadedData): boolean; protected _onHlsLevelSwitched(event: Events, data: LevelSwitchedData): void; protected _onHlsFragBuffered(_event: Events, _data: FragBufferedData): void; protected get _isInFallbackLevel(): boolean; protected get _hasSufficientBuffer(): boolean; protected _buildElementEvents(): void; protected _onElementPlay(): void; protected _onElementPause(): void; protected _bindElementEvents(): void; protected _unbindElementEvents(): void; protected abstract _buildQualityController(): void; protected abstract _destroy(): void; } export { AbstractHlsSourcePlugin, SpecHlsSourceProcessor, AbstractHlsSourceProcessor };