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
 * <TranslatedText tKey="game:hud.score" values={{ score: 100 }} />
 * <TranslatedText tKey="editor:tools.select" as="h2" />
 */
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
 * <LocaleSelect />
 * <LocaleSelect showNativeName />
 */
export declare function LocaleSelect({ showNativeName, className, style, }?: {
    showNativeName?: boolean;
    className?: string;
    style?: React.CSSProperties;
}): React.ReactElement;
