import { type LocaleData } from "./core.js"; import { type NumberFormatDigitInternalSlots } from "./number.js"; export type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other"; export interface PluralRangesData { cardinal?: Record; ordinal?: Record; } export interface PluralRulesData { categories: { cardinal: string[]; ordinal: string[]; }; fn: (val: number | string, ord?: boolean, exponent?: number) => LDMLPluralRule; pluralRanges?: PluralRangesData; } export type PluralRulesLocaleData = LocaleData; export interface PluralRulesInternal extends NumberFormatDigitInternalSlots { initializedPluralRules: boolean; locale: string; type: "cardinal" | "ordinal"; notation: "standard" | "compact"; compactDisplay?: "short" | "long"; dataLocaleData?: any; }