import React from 'react';
import { cnLabels, enLabels } from './locales';
export { cnLabels, enLabels };
export type LocalKeys = typeof cnLabels;
/**
 * 语言检测工具函数
 *
 * 检测用户的语言偏好，支持多种检测方式：
 * 1. 浏览器语言设置
 * 2. Ant Design ConfigProvider 的 locale
 * 3. localStorage 中保存的用户选择
 * 4. 默认语言
 */
export declare function detectUserLanguage(): 'zh-CN' | 'en-US';
/**
 * 获取对应的语言标签对象
 */
export declare function getLocaleByLanguage(language: 'zh-CN' | 'en-US'): typeof cnLabels;
/**
 * 保存用户语言选择到 localStorage
 */
export declare function saveUserLanguage(language: 'zh-CN' | 'en-US'): void;
/**
 * 国际化上下文
 *
 * 提供国际化功能的React Context，包含当前语言环境和设置语言的方法。
 */
export declare const I18nContext: React.Context<{
    locale: LocalKeys;
    language: 'zh-CN' | 'en-US';
    setLanguage?: ((language: 'zh-CN' | 'en-US') => void) | undefined;
    setLocale?: ((locale: LocalKeys) => void) | undefined;
}>;
/**
 * I18nProvide 组件 - 国际化提供者组件
 *
 * 该组件提供国际化功能，支持中英文切换，自动检测用户语言偏好。
 * 集成Ant Design的ConfigProvider，提供完整的国际化支持。
 *
 * @component
 * @description 国际化提供者组件，支持多语言切换
 * @param {Object} props - 组件属性
 * @param {React.ReactNode} props.children - 子组件
 * @param {typeof cnLabels} [props.locale] - 自定义语言环境
 * @param {'zh-CN' | 'en-US'} [props.defaultLanguage] - 默认语言
 * @param {boolean} [props.autoDetect=true] - 是否自动检测语言
 *
 * @example
 * ```tsx
 * <I18nProvide defaultLanguage="en-US" autoDetect={true}>
 *   <App />
 * </I18nProvide>
 * ```
 *
 * @returns {React.ReactElement} 渲染的国际化提供者组件
 *
 * @remarks
 * - 支持中英文语言切换
 * - 自动检测用户浏览器语言
 * - 集成Ant Design国际化
 * - 提供语言环境上下文
 * - 支持自定义语言配置
 * - 响应式语言切换
 * - 提供模板字符串编译功能
 * - 支持 localStorage 持久化语言选择
 * - 支持 Ant Design ConfigProvider 同步
 */
export declare const I18nProvide: React.FC<{
    children: React.ReactNode;
    locale?: typeof cnLabels;
    defaultLanguage?: 'zh-CN' | 'en-US';
    autoDetect?: boolean;
}>;
/**
 * 编译模板字符串，将其中的变量占位符替换为对应的值
 *
 * @param template - 包含变量占位符的模板字符串，格式为 ${variableName}
 * @param variables - 变量名和对应值的键值对对象，默认为空对象
 * @returns 替换变量后的字符串。如果变量在variables中不存在，则显示为[variableName]
 *
 * @example
 * // 返回 "你好，世界！"
 * compileTemplate("你好，${name}！", { name: "世界" });
 *
 * // 返回 "你好，[name]！"（当变量未提供时）
 * compileTemplate("你好，${name}！");
 */
export declare function compileTemplate(template: string, variables?: Record<string, string>): string;
