import { VideoFormat, VideoCodec, AudioCodec } from '../../../player/types';
import { type ITuningConfig } from '../../../utils/tuningConfig';
type VodFormat = VideoFormat.MPEG | VideoFormat.DASH_SEP | VideoFormat.DASH_WEBM | VideoFormat.DASH_WEBM_AV1 | VideoFormat.DASH_STREAMS | VideoFormat.DASH_ONDEMAND | VideoFormat.HLS | VideoFormat.HLS_FMP4 | VideoFormat.HLS_ONDEMAND;
type Constraints = Pick<ITuningConfig, 'webmCodec' | 'androidPreferredFormat' | 'iosPreferredFormat' | 'preferCMAF' | 'preferWebRTC' | 'preferMultiStream'>;
/**
 * Все ONDEMAND форматы ниже готовых эквивалентов потому что ONDEMAND требует серверных ресурсов для нарезки.
 * Из дашей VP9 (WEBM) самый оптимальный
 * Интерливнутый (DASH) устарел и от него отказываемся в пользу DASH_SEP
 * HLS нативно поддерживается в Сафари и на мобильных девайсах, при этом на андроиде он играет плохо
 * MPEG – более-менее пуленепробиваемый формат который играет везде и есть у всех видео (за редкими исключениями), но он не адаптивный
 */
export declare const getFormatsPriority: ({ webmCodec, androidPreferredFormat, iosPreferredFormat, preferMultiStream }: Constraints) => VodFormat[];
type LiveFormat = VideoFormat.WEB_RTC_LIVE | VideoFormat.HLS_LIVE | VideoFormat.DASH_LIVE | VideoFormat.DASH_LIVE_CMAF | VideoFormat.HLS_LIVE_CMAF;
type AllLiveFormats = [LiveFormat, LiveFormat, LiveFormat, LiveFormat, LiveFormat];
export declare const getLiveFormatsPriority: ({ androidPreferredFormat, preferCMAF, preferWebRTC }: Constraints) => AllLiveFormats;
export declare const getChromeCastFormatsPriority: (live: boolean) => VideoFormat[];
export declare const selectCodec: (codecs: Set<string>) => string | undefined;
export declare const filterAvailableVideoCodecs: (codecs: string[]) => VideoCodec[];
export declare const filterAvailableAudioCodecs: (codecs: string[]) => AudioCodec[];
export declare const convertCodecName: <T extends VideoCodec | AudioCodec>(codec: string) => T;
export {};
