import { LocalizationConfig } from '../UIManager';
export declare const defaultVocabularies: Vocabularies;
/**
 * @category Localization
 */
export type Localizer = () => string;
/**
 * @category Localization
 */
export type LocalizableText = string | Localizer;
/**
 * @category Localization
 */
export interface Vocabulary {
    'settings.video.quality': string;
    'settings.audio.quality': string;
    'settings.audio.track': string;
    'settings.audio.mute': string;
    'settings.audio.volume': string;
    'settings.subtitles': string;
    'settings.subtitles.font.color': string;
    'settings.subtitles.font.opacity': string;
    'settings.subtitles.background.color': string;
    'settings.subtitles.background.opacity': string;
    'settings.subtitles.font.size': string;
    'settings.subtitles.characterEdge': string;
    'settings.subtitles.characterEdge.raised': string;
    'settings.subtitles.characterEdge.depressed': string;
    'settings.subtitles.characterEdge.uniform': string;
    'settings.subtitles.characterEdge.dropshadowed': string;
    'settings.subtitles.font.family': string;
    'settings.subtitles.font.family.monospacedserif': string;
    'settings.subtitles.font.family.proportionalserif': string;
    'settings.subtitles.font.family.monospacedsansserif': string;
    'settings.subtitles.font.family.proportionalsansserif': string;
    'settings.subtitles.font.family.casual': string;
    'settings.subtitles.font.family.cursive': string;
    'settings.subtitles.font.family.smallcapital': string;
    'settings.subtitles.window.color': string;
    'settings.subtitles.window.opacity': string;
    play: string;
    'settings.time.hours': string;
    'settings.time.minutes': string;
    'settings.time.seconds': string;
    'colors.white': string;
    'colors.black': string;
    'colors.red': string;
    'colors.green': string;
    'colors.blue': string;
    'colors.cyan': string;
    'colors.yellow': string;
    'colors.magenta': string;
    percent: string;
    settings: string;
    'ads.remainingTime': string;
    pictureInPicture: string;
    appleAirplay: string;
    googleCast: string;
    vr: string;
    off: string;
    auto: string;
    back: string;
    reset: string;
    replay: string;
    normal: string;
    default: string;
    open: string;
    close: string;
    fullscreen: string;
    speed: string;
    playPause: string;
    live: string;
    'subtitle.example': string;
    'subtitle.select': string;
    playingOn: string;
    connectingTo: string;
    watermarkLink: string;
    controlBar: string;
    player: string;
    seekBar: string;
    'seekBar.value': string;
    'seekBar.timeshift': string;
    'seekBar.durationText': string;
    ecoMode: string;
    'ecoMode.title': string;
}
/**
 * @category Localization
 */
export type CustomVocabulary<V> = V & Partial<Vocabulary>;
/**
 * @category Localization
 */
export interface Vocabularies {
    [key: string]: CustomVocabulary<Record<string, string>>;
}
/**
 * @category Localization
 */
export declare class I18n {
    private language;
    private vocabulary;
    constructor(config: LocalizationConfig);
    setConfig(config: LocalizationConfig): void;
    private static containsLanguage;
    private mergeVocabulariesWithDefaultVocabularies;
    private initializeLanguage;
    private initializeVocabulary;
    private replaceVariableWithPlaceholderIfExists;
    getLocalizer<V extends CustomVocabulary<Record<string, string>> = CustomVocabulary<Record<string, string>>>(key: keyof V, config?: Record<string, string | number>): Localizer;
    performLocalization(text: LocalizableText): string;
}
/**
 * @category Localization
 */
export declare const i18n: I18n;
