1 /*! *****************************************************************************
2 Copyright (c) Microsoft Corporation. All rights reserved.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the
5 License at http://www.apache.org/licenses/LICENSE-2.0
7 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9 WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10 MERCHANTABLITY OR NON-INFRINGEMENT.
12 See the Apache Version 2.0 License for specific language governing permissions
13 and limitations under the License.
14 ***************************************************************************** */
18 /// <reference no-default-lib="true"/>
\r
21 declare namespace Intl {
\r
23 // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories
\r
24 type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other";
\r
25 type PluralRuleType = "cardinal" | "ordinal";
\r
27 interface PluralRulesOptions {
\r
28 localeMatcher?: "lookup" | "best fit";
\r
29 type?: PluralRuleType;
\r
30 minimumIntegerDigits?: number;
\r
31 minimumFractionDigits?: number;
\r
32 maximumFractionDigits?: number;
\r
33 minimumSignificantDigits?: number;
\r
34 maximumSignificantDigits?: number;
\r
37 interface ResolvedPluralRulesOptions {
\r
39 pluralCategories: LDMLPluralRule[];
\r
40 type: PluralRuleType;
\r
41 minimumIntegerDigits: number;
\r
42 minimumFractionDigits: number;
\r
43 maximumFractionDigits: number;
\r
44 minimumSignificantDigits?: number;
\r
45 maximumSignificantDigits?: number;
\r
48 interface PluralRules {
\r
49 resolvedOptions(): ResolvedPluralRulesOptions;
\r
50 select(n: number): LDMLPluralRule;
\r
53 const PluralRules: {
\r
54 new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
\r
55 (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
\r
57 locales: string | string[],
\r
58 options?: PluralRulesOptions,
\r