import { EventEmitterLite } from "./utils.js"; import { type FlatNamespace, type InitOptions, type ParseKeys, type ResourceKey, type TypeOptions, type i18n } from "i18next"; import type { AsyncOrSync } from "ts-essentials"; import type { PluginContext } from "./plugin.js"; import { ResourceComponent } from "./obsidian.js"; export type I18nFormatters = Readonly (value: unknown) => string>>; export type I18nNamespaces = Readonly AsyncOrSync>>>; export type I18nResources = Readonly>; export type TranslationKey = ParseKeys[]) ]>; export declare function createI18n(resources: I18nResources, formatters?: I18nFormatters, options?: Readonly>): Promise; export declare class LanguageManager extends ResourceComponent { #private; protected readonly context: PluginContext; protected readonly autoChangeLanguage: boolean; readonly onChangeLanguage: EventEmitterLite; constructor(context: PluginContext, loader: () => AsyncOrSync, autoChangeLanguage?: boolean); get language(): string; protected static interpretLanguage(language: string): string; changeLanguage(language: string): Promise; onload(): void; protected load0(): Promise; } //# sourceMappingURL=i18n.d.ts.map