/** * LombokTableSheet I18n Manager * Handles language switching, string localization, pluralization, number/date formatting */ import type { Language, I18nOptions, LanguageCatalog } from './types.js'; type StringKey = string; export declare class I18nManager { private currentLanguage; private fallbackLanguage; private strings; private options; constructor(options?: Partial); /** * Register a language with its translations */ registerLanguage(lang: Language, strings: LanguageCatalog): void; /** * Set current active language */ setLanguage(lang: Language): boolean; /** * Get current active language */ getLanguage(): Language; /** * Get list of available languages */ getAvailableLanguages(): Language[]; /** * Get a translated string * @param key Dot-notation key path (e.g., 'ui.ok', 'messages.welcome') * @param variables Optional replacement variables for %key patterns */ t(key: StringKey, variables?: Record): string; /** * Get a pluralized string * @param key Dot-notation key to plurals object * @param count Number to determine plural form * @param variables Optional replacement variables */ tp(key: StringKey, count: number, variables?: Record): string; /** * Format a number according to current language */ formatNumber(value: number, decimals?: number): string; /** * Format a date according to current language */ formatDate(date: Date, format?: string): string; /** * Format a time according to current language */ formatTime(date: Date, format?: string): string; /** * Get language metadata */ getLanguageInfo(lang?: Language): { code: Language; name: string; nPlurals: number; }; /** * Internal: Get value from nested object using dot notation */ private getNestedValue; /** * Internal: Get plural form index based on count * English/Spanish/French/German pluralization: * 0: zero form (count === 0) * 1: singular form (count === 1) * 2: plural form (count > 1) */ private getPluralForm; /** * Internal: Validate language code */ private isValidLanguage; } export declare function createI18n(options?: Partial): I18nManager; export declare function getI18n(): I18nManager; export {};