import { IExternalTextTrack, IInternalTextTrack, ITextTrack } from '../../../player/types';
import { IDesiredState, IProviderOutput } from '../../../providers/types';
/**
 * TODO: сейчас externalTextTracks и internalTextTracks записываются в availableTextTracks отсюда
 * нужно будет выпилить этот класс за исключением этой логики,
 * когда перестанет быть необходима поддержка браузерных субтитров
 */
declare class TextTrackManager {
    private available$;
    private current$;
    private error$;
    private video;
    private cueSettings;
    private subscription;
    private externalTracks;
    private internalTracks;
    private baseURL?;
    constructor(baseURL?: string);
    connect(video: HTMLVideoElement, desiredState: Pick<IDesiredState, 'externalTextTracks' | 'internalTextTracks' | 'currentTextTrack' | 'textTrackCuesSettings'>, providerOutput: Pick<IProviderOutput, 'availableTextTracks$' | 'currentTextTrack$' | 'error$'>): void;
    private subscribe;
    private applyCueSettings;
    private htmlTextTracksAsArray;
    private htmlTextTrackToITextTrack;
    private static isHealthyTrack;
    setExternal(tracks: IExternalTextTrack[]): void;
    setInternal(tracks: IInternalTextTrack[]): void;
    select(selectedId: ITextTrack['id'] | undefined): void;
    destroy(): void;
    private attach;
    private detach;
}
export default TextTrackManager;
