import { Language } from "./language"; import { Formatter } from "./interpolation"; import { I18nContext } from "./context"; export declare class I18n implements I18nContext { constructor(options: I18n.Options); private readonly _clients; private readonly _languageFactory; private readonly _updateHandlers; private readonly _languages; private _language; readonly formatters: Map; readonly T: I18nContext.T; readonly TX: I18nContext.TX; get languages(): ReadonlyMap; get language(): Language | null; setLanguage(name: string): Promise; setLanguageAuto(names: string[], fallback: string): Promise; addResources(name: string, resources: Language.Resources): void; update(): void; addUpdateHandler(handler: I18n.UpdateHandler): void; removeUpdateHandler(handler: I18n.UpdateHandler): void; addClient(client: I18n.Client): void; removeClient(client: I18n.Client): void; } export declare namespace I18n { interface Options extends I18nContext.Options { readonly clients?: Client[]; readonly languageFactory?: LanguageFactory; readonly setLangAttribute?: boolean; } type LanguageFactory = (controller: I18n, name: string, resources?: Language.Resources) => Language; type UpdateHandler = (controller: I18n) => void; interface Client { fetchResources(controller: I18n, language: string): Promise; } }