declare namespace Intl { // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other"; type PluralRuleType = "cardinal" | "ordinal"; interface PluralRulesOptions { localeMatcher?: "lookup" | "best fit"; type?: PluralRuleType; minimumIntegerDigits?: number; minimumFractionDigits?: number; maximumFractionDigits?: number; minimumSignificantDigits?: number; maximumSignificantDigits?: number; } interface ResolvedPluralRulesOptions { locale: string; pluralCategories: LDMLPluralRule[]; type: PluralRuleType; minimumIntegerDigits: number; minimumFractionDigits: number; maximumFractionDigits: number; minimumSignificantDigits?: number; maximumSignificantDigits?: number; } interface PluralRules { resolvedOptions(): ResolvedPluralRulesOptions; select(n: number): LDMLPluralRule; } const PluralRules: { new (locales?: string | string[], options?: PluralRulesOptions): PluralRules; (locales?: string | string[], options?: PluralRulesOptions): PluralRules; supportedLocalesOf( locales: string | string[], options?: PluralRulesOptions, ): string[]; }; }