import { MediaStreamType, MediaStreamDeliveryPriority } from '../constants';
import { IPlaybackAdapter } from '../modules/playback-engine/output/native/adapters/types';
import { IEventEmitter } from '../modules/event-emitter/types';
import { IParsedPlayableSource } from '../modules/playback-engine/types';
export default class HlsAdapter implements IPlaybackAdapter {
    static DEFAULT_HLS_CONFIG: any;
    static isSupported(): boolean;
    private eventEmitter;
    private hls;
    private videoElement;
    private mediaStream;
    private _mediaRecoverTimeout;
    private _networkRecoverTimeout;
    private _isDynamicContent;
    private _isDynamicContentEnded;
    private _isAttached;
    constructor(eventEmitter: IEventEmitter);
    private _bindCallbacks;
    get currentUrl(): string;
    get syncWithLiveTime(): number;
    get isDynamicContent(): boolean;
    get isDynamicContentEnded(): boolean;
    get isSyncWithLive(): boolean;
    get isSeekAvailable(): boolean;
    get mediaStreamDeliveryPriority(): MediaStreamDeliveryPriority.ADAPTIVE_VIA_MSE | MediaStreamDeliveryPriority.FORCED;
    get debugInfo(): {
        bwEstimate: number;
        deliveryPriority: MediaStreamDeliveryPriority;
        bitrates: any;
        currentBitrate: any;
        overallBufferLength: number;
        nearestBufferSegInfo: {
            start: number;
            end: number;
        };
        url: string;
        type: MediaStreamType;
    };
    canPlay(mediaType: MediaStreamType): boolean;
    setMediaStreams(mediaStreams: IParsedPlayableSource[]): void;
    private _logError;
    private _broadcastError;
    private _tryRecoverMediaError;
    private _tryRecoverNetworkError;
    private _attachOnPlay;
    private _onLevelUpdated;
    private _onEndOfStream;
    attach(videoElement: HTMLVideoElement): void;
    detach(): void;
}
