/** * Get the plural category for a number in a given locale */ export declare function getPluralCategory(n: number, locale: string): PluralCategory; /** * Get the plural rule function for a locale */ export declare function getPluralRule(locale: string): PluralRule; /** * Parse a plural string into its forms * * Supports formats: * - "one | other" (simple) * - "zero | one | other" (with zero) * - "{0} item | {0} items" (with placeholders) * - "no items | one item | {n} items" (with special forms) */ export declare function parsePluralForms(str: string, separator?: string): Map; /** * Select the appropriate plural form for a count */ export declare function selectPluralForm(forms: Map, count: number, locale: string): string; /** * Get all supported locales for pluralization */ export declare function getSupportedPluralLocales(): string[]; /** * Check if a locale has custom plural rules */ export declare function hasPluralRule(locale: string): boolean; /** * Add a custom plural rule for a locale */ export declare function addPluralRule(locale: string, rule: PluralRule): void; /** * Pluralization Rules * * Implements CLDR plural rules for various languages. * @see https://cldr.unicode.org/index/cldr-spec/plural-rules */ export type PluralCategory = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other'; export type PluralRule = (_n: number) => PluralCategory;