import type { Locale, InterpolationValues } from './I18n'; import { I18nManager } from './I18n'; /** * Provider component to supply a custom I18nManager to the tree. * If not used, the global singleton (getI18n()) is used automatically. */ export declare function I18nProvider({ i18n, children, }: { i18n: I18nManager; children: React.ReactNode; }): React.ReactElement; export interface UseTranslationResult { /** Translate a key */ t: (key: string, values?: InterpolationValues) => string; /** Current locale */ locale: Locale; /** Change locale */ setLocale: (locale: Locale) => void; /** Is current locale RTL? */ isRTL: boolean; /** The underlying I18nManager */ i18n: I18nManager; /** All supported locales */ locales: readonly Locale[]; /** Get human-readable name for a locale */ localeName: (locale: Locale) => string; /** Format a number */ formatNumber: (value: number, options?: Intl.NumberFormatOptions) => string; /** Format a date */ formatDate: (date: Date, options?: Intl.DateTimeFormatOptions) => string; } /** * React hook for translations. * * @param defaultNamespace - Optional default namespace prefix * @returns Translation utilities * * @example * // Without namespace * const { t } = useTranslation(); * t('engine:editor.tools.select'); * * @example * // With default namespace * const { t } = useTranslation('engine'); * t('editor.tools.select'); // auto-prefixed to 'engine:editor.tools.select' */ export declare function useTranslation(defaultNamespace?: string): UseTranslationResult; /** * Declarative translated text component. * * @example * * */ export declare function TranslatedText({ tKey, values, ns, as: Tag, className, style, }: { tKey: string; values?: InterpolationValues; ns?: string; as?: keyof JSX.IntrinsicElements; className?: string; style?: React.CSSProperties; }): React.ReactElement; /** * Dropdown for switching locale. * * @example * * */ export declare function LocaleSelect({ showNativeName, className, style, }?: { showNativeName?: boolean; className?: string; style?: React.CSSProperties; }): React.ReactElement;