--- /dev/null
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+
+
+
+/// <reference no-default-lib="true"/>\r
+
+
+declare namespace Intl {\r
+\r
+ // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories\r
+ type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other";\r
+ type PluralRuleType = "cardinal" | "ordinal";\r
+\r
+ interface PluralRulesOptions {\r
+ localeMatcher?: "lookup" | "best fit";\r
+ type?: PluralRuleType;\r
+ minimumIntegerDigits?: number;\r
+ minimumFractionDigits?: number;\r
+ maximumFractionDigits?: number;\r
+ minimumSignificantDigits?: number;\r
+ maximumSignificantDigits?: number;\r
+ }\r
+\r
+ interface ResolvedPluralRulesOptions {\r
+ locale: string;\r
+ pluralCategories: LDMLPluralRule[];\r
+ type: PluralRuleType;\r
+ minimumIntegerDigits: number;\r
+ minimumFractionDigits: number;\r
+ maximumFractionDigits: number;\r
+ minimumSignificantDigits?: number;\r
+ maximumSignificantDigits?: number;\r
+ }\r
+\r
+ interface PluralRules {\r
+ resolvedOptions(): ResolvedPluralRulesOptions;\r
+ select(n: number): LDMLPluralRule;\r
+ }\r
+\r
+ const PluralRules: {\r
+ new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;\r
+ (locales?: string | string[], options?: PluralRulesOptions): PluralRules;\r
+ supportedLocalesOf(\r
+ locales: string | string[],\r
+ options?: PluralRulesOptions,\r
+ ): string[];\r
+ };\r
+}\r