export declare type BuiltInLocale = typeof LOCALE_ZH_HANS | typeof LOCALE_ZH_HANT | typeof LOCALE_EN | typeof LOCALE_FR | typeof LOCALE_ES; export declare interface Formatter { interpolate: (message: string, values?: Record | Array) => Array; } export declare class I18n { private locale; private fallbackLocale; private message; private messages; private watchers; private formater; constructor({ locale, fallbackLocale, messages, watcher, formater, }: I18nOptions); setLocale(locale: string): void; getLocale(): BuiltInLocale; watchLocale(fn: LocaleWatcher): () => void; add(locale: BuiltInLocale, message: Record): void; t(key: string, values?: Record | Array | BuiltInLocale): string; t(key: string, locale?: BuiltInLocale, values?: Record | Array): string; } export declare interface I18nOptions { locale: BuiltInLocale; fallbackLocale?: BuiltInLocale; messages?: LocaleMessages; formater?: Formatter; watcher?: LocaleWatcher; } export declare function initVueI18n(messages?: LocaleMessages, fallbackLocale?: BuiltInLocale, locale?: BuiltInLocale): { i18n: I18n; t(key: string, values?: Record | unknown[] | undefined): string; add(locale: BuiltInLocale, message: Record): void; getLocale(): BuiltInLocale; setLocale(newLocale: BuiltInLocale): void; }; export declare const LOCALE_EN = "en"; export declare const LOCALE_ES = "es"; export declare const LOCALE_FR = "fr"; export declare const LOCALE_ZH_HANS = "zh-Hans"; export declare const LOCALE_ZH_HANT = "zh-Hant"; export declare type LocaleMessages = { [name in BuiltInLocale]?: Record; }; export declare type LocaleWatcher = (newLocale: BuiltInLocale, oldLocale: BuiltInLocale) => void; export { }