/** * Utilities for handling PO/POT plural forms and context */ export interface PluralRule { nplurals: number; plural: string; description: string; } export interface ContextualTranslation { context: string; msgid: string; msgstr: string[]; msgid_plural?: string; } /** * Comprehensive plural forms for different languages * Based on GNU gettext documentation and Unicode CLDR */ export declare const PLURAL_FORMS: Record; /** * Get plural form rule for a language */ export declare function getPluralRule(language: string): PluralRule; /** * Format plural forms header for PO files */ export declare function formatPluralFormsHeader(language: string): string; /** * Validate plural form expression */ export declare function validatePluralExpression(expression: string, nplurals: number): boolean; /** * Evaluate plural expression for a given number * WARNING: This uses eval() and should only be used with trusted input */ export declare function evaluatePluralExpression(expression: string, n: number): number; /** * Parse context from a translation key */ export declare function parseContext(key: string): { context: string; msgid: string; }; /** * Create context key from context and msgid */ export declare function createContextKey(context: string, msgid: string): string; /** * Parse plural form index from a translation key */ export declare function parsePluralIndex(key: string): { baseKey: string; pluralIndex?: number; }; /** * Create plural form key */ export declare function createPluralKey(baseKey: string, index: number): string; /** * Validate context string */ export declare function validateContext(context: string): boolean; /** * Normalize language code for plural form lookup */ export declare function normalizeLanguageCode(language: string): string; /** * Get all supported languages with plural forms */ export declare function getSupportedLanguages(): string[]; /** * Check if a language has complex plural forms (more than 2 forms) */ export declare function hasComplexPlurals(language: string): boolean; /** * Generate sample plural forms for a language */ export declare function generateSamplePlurals(language: string, msgid: string, msgidPlural?: string): string[]; /** * Validate that all required plural forms are present */ export declare function validatePluralForms(translations: Record, language: string): { isValid: boolean; missing: string[]; extra: string[]; };