UNPKG

@formatjs/ecma402-abstract

Version:

A collection of implementation for ECMAScript abstract operations

25 lines (24 loc) 852 B
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<string, LDMLPluralRule>; ordinal?: Record<string, LDMLPluralRule>; } export interface PluralRulesData { categories: { cardinal: string[]; ordinal: string[]; }; fn: (val: number | string, ord?: boolean, exponent?: number) => LDMLPluralRule; pluralRanges?: PluralRangesData; } export type PluralRulesLocaleData = LocaleData<PluralRulesData>; export interface PluralRulesInternal extends NumberFormatDigitInternalSlots { initializedPluralRules: boolean; locale: string; type: "cardinal" | "ordinal"; notation: "standard" | "compact"; compactDisplay?: "short" | "long"; dataLocaleData?: any; }