export declare type Value = object | string | number; export declare type ValueCallback = () => Value; export declare type Values = { [key: string]: Value | ValueCallback; }; export declare type ValuesCallback = () => Values; export declare type Key = string; export declare type LanguageIdentifier = string; export declare type Translation = string; export declare type Strings = { [key: string]: string | Strings; }; export declare type TranslationCache = { [key: string]: Translation; }; export declare type StringsLoader = (lang: LanguageIdentifier, config: ITranslateConfig) => Promise; export declare type InterpolateFunction = (text: string, values: Values | ValuesCallback | null, config: ITranslateConfig) => Translation; export declare type EmptyFunction = (key: Key, config: ITranslateConfig) => string; export declare type LookupFunction = (key: Key, config: ITranslateConfig) => string | null; export declare const enum TranslateEventKind { LANG_CHANGED = "langChanged" } export declare type LangChangedEvent = { previousLang?: LanguageIdentifier; previousStrings?: Strings; strings: Strings; lang: LanguageIdentifier; }; export interface ITranslateConfig { loader: StringsLoader; interpolate: InterpolateFunction; empty: EmptyFunction; lookup: LookupFunction; lang?: LanguageIdentifier; strings?: Strings; translationCache: TranslationCache; } export declare const CLEANUP_PARTS_MS: number; export declare type LangChangedDirectiveCallback = ((e?: LangChangedEvent) => any);