/**
 * 国际化模块
 */
/**
 * 默认语种 `zh_CN`
 */
export declare let DEFAULT_LANG: string;
/**
 * i18n实例
 *
 * 如果已开启国际化开关{@link Config}，那么模块被加载时，{@link redisClient} 创建成功后(语言包存储在redis)，会自动创建该实例，否则为空
 *
 * ```ts
 * import { i18n, t, $t } from "refs/nslib";
 *
 * //翻译数据，语种优先级：请求头 > 车场主语言 > zh_CN
 * t('(主相机)', parkId);
 *
 * //翻译非标数据(数据库)，语种优先级：请求头 > 车场主语言 > zh_CN
 * $t('$#{{(主相机)}}', parkId);
 *
 * //使用i18n原生方法翻译数据
 *
 * //根据默认语种进行翻译
 * 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' })
 * ```
 *
 * @see [i18n](https://www.npmjs.com/package/i18n)
 */
export declare let i18n: any;
export declare function init(): Promise<void>;
/**
 * 翻译数据，只翻译值为`$#{{xxx}}`的字符串
 *
 * @param data 要翻译的数据，可以是任意对象
 * @param lang 目标语种
 */
export declare function $translate(data: any, lang?: string): any;
/**
 * 翻译数据
 *
 * @param data 要翻译的数据，可以是任意对象
 * @param lang 目标语种
 */
export declare function translate(data: any, lang?: string): any;
/**
 * 从请求头获取语种
 */
export declare function getLangFromHeader(): any;
/**
 * 获取车场主语言
 *
 * 场端{@link IS_PARK}从sqlite取, 非场端从redis取
 */
export declare function getParkLang(parkId: any): Promise<any>;
/**
 * 获取语种
 *
 * 优先级：请求头 > 车场主语言 {@link getParkLang} > zh_CN
 */
export declare function getLang(parkId?: any): Promise<any>;
/**
 * 翻译数据
 *
 * 语种优先级：请求头 > 车场主语言 {@link getParkLang} > zh_CN
 * @param data 要翻译的数据，可以是任意对象
 * @param parkId 车场id, 用来获取车场主语言
 */
export declare function t(data: any, parkId?: any): Promise<any>;
/**
 * 翻译数据, 只翻译值为`$#{{xxx}}`的字符串
 *
 * 语种优先级：请求头 > 车场主语言 {@link getParkLang} > zh_CN
 * @param data 要翻译的数据，可以是任意对象
 * @param parkId 车场id, 用来获取车场主语言
 */
export declare function $t(data: any, parkId?: any): Promise<any>;
