@formatjs/ecma402-abstract
Version:
A collection of implementation for ECMAScript abstract operations
25 lines (24 loc) • 852 B
TypeScript
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;
}