export type ResolvePluralFormOptions = { count: number; candidates: [string, ...string[]]; locale: string; }; /** * Picks the plural form matching `count` for `locale`. * * @param count - The number to pluralize * @param candidates - One string per plural category `locale` distinguishes, in canonical CLDR order * (zero, one, two, few, many, other) filtered to that locale's categories — e.g. 2 entries for 'en' * (one, other), 4 for 'ru' (one, few, many, other). The caller (or its translation catalog) owns * supplying the right length and order for the given locale. In dev, a length mismatch against * `locale`'s actual category count throws instead of silently resolving the wrong form. * @param locale - BCP 47 locale used to resolve the matching category via `Intl.PluralRules`. * Invalid locale tags silently fall back to the runtime default — validate the locale upstream. * @returns The matching candidate with # replaced by count * * @example * resolvePluralForm({ count: 1, candidates: ['# item', '# items'], locale: 'en' }) // "1 item" * resolvePluralForm({ count: 5, candidates: ['# item', '# items'], locale: 'en' }) // "5 items" */ export declare const resolvePluralForm: ({ count, candidates, locale }: ResolvePluralFormOptions) => string;