/**
 * 国际化模块
 */
import { TyGlobalApiClient, Token } from "./TyGlobalApi";
/**
 * 国际化服务类
 */
export declare class GlobalService {
    tyGlobalApiClient: TyGlobalApiClient;
    /**
     * 获取语言包
     *
     * 返回值为什么没有使用Map来做?
     *
     * 1.Map直接转json是个空对象{}，可以使用Object.fromEntries转换(map的key变成属性，map的value变成属性值)再转json;
     *
     * 2.js弱语言可以使用key作为属性名，但使用数据结构{ key: string, value: string }来存储具有通用性;
     */
    getLanguagePacks(args: {
        token: Token;
        language?: string;
    }): Promise<{
        [lang: string]: {
            key: string;
            value: string;
        }[];
    }>;
}
/**
 * 默认语种：zh_CN
 */
export declare let DEFAULT_LANG: string;
/**
 * i18n国际化实例
 *
 * 当config.global.mode=PARK时，从场端redis加载语言包
 *
 * 当config.global.mode=CLOUD时，从云端redis加载语言包
 *
 * 基本用法：
 *
 * i18n.__('(主相机)') //根据默认语种进行翻译
 *
 * i18n.__('Hello %s', 'Keytop') //根据默认语种翻译短语，带占位符%s
 *
 * i18n.__('Hello {0}', ['Keytop']) //根据默认语种翻译短语，带占位符{0}
 *
 * i18n.__('Hello {name}', { name: 'Keytop' }) //根据默认语种翻译短语，带属性占位符{name}
 *
 * i18n.__({ phrase: 'Hello %s', locale: 'en_US' }, 'Keytop1')
 *
 * i18n.__({ phrase: 'Hello {0}', locale: 'en_US' }, ['Keytop1'])
 *
 * i18n.__({ phrase: 'Hello {name}', locale: 'en_US' }, { name: 'Keytop1' })
 *
 * https://www.npmjs.com/package/i18n
 */
export declare let i18n: any;
export declare function init(): Promise<void>;
/**
 * 翻译数据，只翻译包含$#{{xxx}}的字符串
 *
 * @param data 翻译的数据，可以是任意对象
 * @param lang 目标语种,如果i18n已配置默认语种,不用传
 */
export declare function $translate(data: any, lang?: string): any;
/**
 * 翻译数据
 *
 * @param data 翻译的数据，可以是任意对象
 * @param lang 目标语种,如果i18n已配置默认语种,不用传
 */
export declare function translate(data: any, lang?: string): any;
/**
 * 获取车场主语言
 *
 * 1.云端从redis取
 *
 * 2.场端从sqlite取
 */
export declare function getParkLang(parkId: any): Promise<any>;
/**
 * 获取语种
 *
 * 优先级：请求头 > redis(云端)/sqlite(场端) > zh_CN
 * @param parkId
 */
export declare function getLang(parkId?: any): Promise<any>;
/**
 * 使用i18n对任意类型的对象中的所有字符串进行翻译
 *
 * 语种优先级：请求头 > 车场主语言 > zh_CN
 * @param data 翻译的数据，可以是任意对象
 * @param parkId 车场id,用来获取车场主语言
 */
export declare function t(data: any, parkId?: any): Promise<any>;
/**
 * 使用i18n对任意类型的对象中的所有包含$#{{xxx}}的字符串进行翻译
 *
 * 语种优先级：请求头 > 车场主语言 > zh_CN
 * @param data 翻译的数据，可以是任意对象
 * @param parkId 车场id,用来获取车场主语言
 */
export declare function $t(data: any, parkId?: any): Promise<any>;
