/**
 * translation.ts — KeepworkSDK 国际化模块（完整 TypeScript 实现）
 *
 * 以中文文本作为 key，外部 JSON 提供其他语言翻译；缺失翻译时回退中文。
 * 语言解析顺序：URL 参数 `?lang=enUS` > localStorage `keepwork_ui_lang` > navigator.language。
 * 完整 API 见 docs/translation.md。
 */
/** Translation 构造选项 */
export interface TranslationOptions {
    /** 语言代码 → JSON URL 的映射 */
    localeFiles?: Record<string, string>;
    /** 回退语言代码（默认 'zhCN'） */
    defaultLang?: string;
    /** 是否在构造时立即调用 init()（默认 false） */
    autoInit?: boolean;
}
/** 翻译变量映射（用于 `{var}` 插值） */
export type TranslationVars = Record<string, string | number>;
/** 翻译表（扁平 key → 译文） */
type TranslationMap = Record<string, string>;
/**
 * Translation — 可复用的 i18n 模块。
 *
 * 通常通过 `window.i18n` 访问共享实例（由 installI18nGlobals 安装）；
 * 也可直接 `new Translation(options)` 创建独立实例。
 */
export default class Translation {
    private _STORAGE_KEY;
    private _localeFiles;
    private _defaultLang;
    private _currentLang;
    private _translations;
    private _isLoading;
    private _loadPromise;
    private _initPromise;
    constructor(options?: TranslationOptions);
    /**
     * 检测系统语言并映射到支持的语言代码。
     */
    private _detectSystemLang;
    /**
     * 解析当前 UI 语言。优先级：URL 参数 > localStorage > 系统语言。
     */
    private _resolveCurrentLang;
    /**
     * 从 JSON 文件加载翻译。
     * @param lang - 要加载的语言代码（默认当前语言）
     */
    loadTranslations(lang?: string): Promise<TranslationMap>;
    /**
     * 初始化 i18n：解析语言、加载翻译、应用 DOM 翻译。
     */
    init(): Promise<string>;
    /**
     * 翻译文本。构造时会 bind 为实例属性 this.t（可作为独立函数传递）。
     * @param key  - 以中文文本作为 key
     * @param vars - 用于替换 `{varName}` 的变量
     */
    t(key: string, vars?: TranslationVars): string;
    /**
     * 把翻译应用到所有带 data-i18n 属性的元素。
     */
    applyTranslations(): void;
    /**
     * 设置 UI 语言并重新加载翻译（会刷新页面以应用）。
     */
    setLang(lang: string): Promise<void>;
    /** 获取当前语言代码。 */
    getLang(): string;
    /** 翻译是否已就绪。 */
    isReady(): boolean;
    /** 返回初始化完成的 Promise。 */
    ready(): Promise<unknown>;
    /**
     * 合并额外翻译（不覆盖已有 key）。支持扁平或单层嵌套对象。
     */
    mergeTranslations(extra: Record<string, unknown>): void;
    /**
     * 注册更多语言文件路径（懒加载）。
     */
    addLocaleFiles(files: Record<string, string>): void;
    /** [语言学习] 获取原生语言（= UI 语言）。 */
    getNativeLanguage(): string;
    /** [语言学习] 获取目标语言（单独存储）。 */
    getTargetLanguage(): string;
}
/**
 * 在 window 上安装向后兼容的全局变量（由 bundle 入口 index.ts 自动调用）：
 * - `window.i18n`         — Translation 实例
 * - `window.t(key,vars)`  — i18n.t() 快捷方式
 * - `window.GetDisplayLanguage()` — 返回当前语言代码
 */
export declare function installI18nGlobals(instance: Translation): void;
export {};
//# sourceMappingURL=translation.d.ts.map