export interface Headers {
    'content-type'?: string;
    'plural-forms'?: string;
}
export type StringArrayMap = Record<string, string[]>;
export interface LocaleData {
    headers: Headers;
    contexts: {
        [key: string]: StringArrayMap;
    };
}
/**
 * A locale in Hebcal is used for translations/transliterations of
 * holidays. `@hebcal/hdate` supports four locales by default
 * * `en` - default, Sephardic transliterations (e.g. "Shabbat")
 * * `ashkenazi` - Ashkenazi transliterations (e.g. "Shabbos")
 * * `he` - Hebrew (e.g. "שַׁבָּת")
 * * `he-x-NoNikud` - Hebrew without nikud (e.g. "שבת")
 */
export declare class Locale {
    /**
     * Returns translation only if `locale` offers a non-empty translation for `id`.
     * Otherwise, returns `undefined`.
     * @param id Message ID to translate
     * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
     */
    static lookupTranslation(id: string, locale?: string): string | undefined;
    /**
     * By default, if no translation was found, returns `id`.
     * @param id Message ID to translate
     * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
     */
    static gettext(id: string, locale?: string): string;
    /**
     * Register locale translations.
     * @param locale Locale name (i.e.: `'he'`, `'fr'`)
     * @param data parsed data from a `.po` file.
     */
    static addLocale(locale: string, data: LocaleData): void;
    /**
     * Adds a translation to `locale`, replacing any previous translation.
     * @param locale Locale name (i.e: `'he'`, `'fr'`).
     * @param id Message ID to translate
     * @param translation Translation text
     */
    static addTranslation(locale: string, id: string, translation: string | string[]): void;
    /**
     * Adds multiple translations to `locale`, replacing any previous translations.
     * @param locale Locale name (i.e: `'he'`, `'fr'`).
     * @param data parsed data from a `.po` file.
     */
    static addTranslations(locale: string, data: LocaleData): void;
    /**
     * Activates a locale. Throws an error if the locale has not been previously added.
     * After setting the locale to be used, all strings marked for translations
     * will be represented by the corresponding translation in the specified locale.
     * @param locale Locale name (i.e: `'he'`, `'fr'`)
     * @deprecated
     */
    static useLocale(locale: string): StringArrayMap;
    /**
     * Returns the name of the active locale (i.e. 'he', 'ashkenazi', 'fr')
     * @deprecated
     */
    static getLocaleName(): string;
    /**
     * Returns the names of registered locales
     */
    static getLocaleNames(): string[];
    /**
     * Renders a number in ordinal, such as 1st, 2nd or 3rd
     * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
     */
    static ordinal(n: number, locale?: string): string;
    /**
     * Removes nekudot from Hebrew string
     */
    static hebrewStripNikkud(str: string): string;
}
