export declare type TranslateFunction = (key: string, options?: Partial<TranslateOptions>) => string;
export interface TranslatorInterface {
    t: TranslateFunction;
    /** @deprecated use locale() instead */
    language(language?: string): string;
    locale(locale?: string | Intl.Locale): void;
    short(): string;
    long(): string;
    region(): string | undefined;
    script(): string | undefined;
    addResource(language: string, translations: Translations): void;
    addPlugin(plugin: TranslatorPlugin, language?: string): void;
    listen(listener: Listener): Unsubscribe;
}
export declare type Translations = {
    [key: string]: string | Translations;
};
export declare type ParsedTranslations = {
    [search: string]: string;
};
export declare type TranslateOptions = {
    context: string;
    count: number;
    replace: {
        [search: string]: string | number | Date;
    };
};
export declare type LanguageOptions = {
    default: string;
    fallback: string;
};
export declare type Listener = () => void;
export declare type Unsubscribe = () => void;
export declare type TranslatorPlugin = (translated: string, options: Partial<TranslateOptions>, usedLocale: string, translator: TranslatorInterface) => string | undefined;
export declare type PluginRegistry = {
    [tag: string]: TranslatorPlugin[];
};
