| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 | /*! *****************************************************************************Copyright (c) Microsoft Corporation. All rights reserved.Licensed under the Apache License, Version 2.0 (the "License"); you may not usethis file except in compliance with the License. You may obtain a copy of theLicense at http://www.apache.org/licenses/LICENSE-2.0THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANYKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIEDWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,MERCHANTABLITY OR NON-INFRINGEMENT.See the Apache Version 2.0 License for specific language governing permissionsand limitations under the License.***************************************************************************** *//// <reference no-default-lib="true"/>declare namespace Intl {    /**     * [Unicode BCP 47 Locale Identifiers](https://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers) definition.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).     */    type UnicodeBCP47LocaleIdentifier = string;    /**     * Unit to use in the relative time internationalized message.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).     */    type RelativeTimeFormatUnit =        | "year"        | "years"        | "quarter"        | "quarters"        | "month"        | "months"        | "week"        | "weeks"        | "day"        | "days"        | "hour"        | "hours"        | "minute"        | "minutes"        | "second"        | "seconds";    /**     * The locale matching algorithm to use.     *     * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).     */    type RelativeTimeFormatLocaleMatcher = "lookup" | "best fit";    /**     * The format of output message.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).     */    type RelativeTimeFormatNumeric = "always" | "auto";    /**     * The length of the internationalized message.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).     */    type RelativeTimeFormatStyle = "long" | "short" | "narrow";    /**     * [BCP 47 language tag](http://tools.ietf.org/html/rfc5646) definition.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).     */    type BCP47LanguageTag = string;    /**     * The locale(s) to use     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).     */    type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;    /**     * An object with some or all of properties of `options` parameter     * of `Intl.RelativeTimeFormat` constructor.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).     */    interface RelativeTimeFormatOptions {        /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */        localeMatcher?: RelativeTimeFormatLocaleMatcher;        /** The format of output message. */        numeric?: RelativeTimeFormatNumeric;        /** The length of the internationalized message. */        style?: RelativeTimeFormatStyle;    }    /**     * An object with properties reflecting the locale     * and formatting options computed during initialization     * of the `Intl.RelativeTimeFormat` object     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).     */    interface ResolvedRelativeTimeFormatOptions {        locale: UnicodeBCP47LocaleIdentifier;        style: RelativeTimeFormatStyle;        numeric: RelativeTimeFormatNumeric;        numberingSystem: string;    }    /**     * An object representing the relative time format in parts     * that can be used for custom locale-aware formatting.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).     */    interface RelativeTimeFormatPart {        type: string;        value: string;        unit?: RelativeTimeFormatUnit;    }    interface RelativeTimeFormat {        /**         * Formats a value and a unit according to the locale         * and formatting options of the given         * [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)         * object.         *         * While this method automatically provides the correct plural forms,         * the grammatical form is otherwise as neutral as possible.         *         * It is the caller's responsibility to handle cut-off logic         * such as deciding between displaying "in 7 days" or "in 1 week".         * This API does not support relative dates involving compound units.         * e.g "in 5 days and 4 hours".         *         * @param value -  Numeric value to use in the internationalized relative time message         *         * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.         *         * @throws `RangeError` if `unit` was given something other than `unit` possible values         *         * @returns {string} Internationalized relative time message as string         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).         */        format(value: number, unit: RelativeTimeFormatUnit): string;        /**         *  Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.         *         *  @param value - Numeric value to use in the internationalized relative time message         *         *  @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.         *         *  @throws `RangeError` if `unit` was given something other than `unit` possible values         *         *  [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).         */        formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];        /**         * Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).         */        resolvedOptions(): ResolvedRelativeTimeFormatOptions;    }    /**     * The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)     * object is a constructor for objects that enable language-sensitive relative time formatting.     *     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).     */    const RelativeTimeFormat: {        /**         * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects         *         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.         *  For the general form and interpretation of the locales argument,         *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).         *         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)         *  with some or all of options of `RelativeTimeFormatOptions`.         *         * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).         */        new(            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],            options?: RelativeTimeFormatOptions,        ): RelativeTimeFormat;        /**         * Returns an array containing those of the provided locales         * that are supported in date and time formatting         * without having to fall back to the runtime's default locale.         *         * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.         *  For the general form and interpretation of the locales argument,         *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).         *         * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)         *  with some or all of options of the formatting.         *         * @returns An array containing those of the provided locales         *  that are supported in date and time formatting         *  without having to fall back to the runtime's default locale.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).         */        supportedLocalesOf(            locales?: UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[],            options?: RelativeTimeFormatOptions,        ): UnicodeBCP47LocaleIdentifier[];    };    interface NumberFormatOptions {        compactDisplay?: "short" | "long" | undefined;        notation?: "standard" | "scientific" | "engineering" | "compact" | undefined;        signDisplay?: "auto" | "never" | "always" | "exceptZero" | undefined;        unit?: string | undefined;        unitDisplay?: "short" | "long" | "narrow" | undefined;        currencyDisplay?: string | undefined;        currencySign?: string | undefined;    }    interface ResolvedNumberFormatOptions {        compactDisplay?: "short" | "long";        notation?: "standard" | "scientific" | "engineering" | "compact";        signDisplay?: "auto" | "never" | "always" | "exceptZero";        unit?: string;        unitDisplay?: "short" | "long" | "narrow";        currencyDisplay?: string;        currencySign?: string;    }    interface DateTimeFormatOptions {        calendar?: string | undefined;        dayPeriod?: "narrow" | "short" | "long" | undefined;        numberingSystem?: string | undefined;        dateStyle?: "full" | "long" | "medium" | "short" | undefined;        timeStyle?: "full" | "long" | "medium" | "short" | undefined;        hourCycle?: "h11" | "h12" | "h23" | "h24" | undefined;    }    type LocaleHourCycleKey = "h12" | "h23" | "h11" | "h24";    type LocaleCollationCaseFirst = "upper" | "lower" | "false";    interface LocaleOptions {        /** A string containing the language, and the script and region if available. */        baseName?: string;        /** The part of the Locale that indicates the locale's calendar era. */        calendar?: string;        /** Flag that defines whether case is taken into account for the locale's collation rules. */        caseFirst?: LocaleCollationCaseFirst;        /** The collation type used for sorting */        collation?: string;        /** The time keeping format convention used by the locale. */        hourCycle?: LocaleHourCycleKey;        /** The primary language subtag associated with the locale. */        language?: string;        /** The numeral system used by the locale. */        numberingSystem?: string;        /** Flag that defines whether the locale has special collation handling for numeric characters. */        numeric?: boolean;        /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */        region?: string;        /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */        script?: string;    }    interface Locale extends LocaleOptions {        /** A string containing the language, and the script and region if available. */        baseName: string;        /** The primary language subtag associated with the locale. */        language: string;        /** Gets the most likely values for the language, script, and region of the locale based on existing values. */        maximize(): Locale;        /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */        minimize(): Locale;        /** Returns the locale's full locale identifier string. */        toString(): BCP47LanguageTag;    }    /**     * Constructor creates [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)     * objects     *     * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).     *  For the general form and interpretation of the locales argument,     *  see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).     *     * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.     *     * @returns [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.     *     * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).     */    const Locale: {        new (tag: BCP47LanguageTag | Locale, options?: LocaleOptions): Locale;    };    type DisplayNamesFallback =        | "code"        | "none";    type DisplayNamesType =        | "language"        | "region"        | "script"        | "calendar"        | "dateTimeField"        | "currency";    type DisplayNamesLanguageDisplay =        | "dialect"        | "standard";    interface DisplayNamesOptions {        localeMatcher?: RelativeTimeFormatLocaleMatcher;        style?: RelativeTimeFormatStyle;        type: DisplayNamesType;        languageDisplay?: DisplayNamesLanguageDisplay;        fallback?: DisplayNamesFallback;    }    interface ResolvedDisplayNamesOptions {        locale: UnicodeBCP47LocaleIdentifier;        style: RelativeTimeFormatStyle;        type: DisplayNamesType;        fallback: DisplayNamesFallback;        languageDisplay?: DisplayNamesLanguageDisplay;    }    interface DisplayNames {        /**         * Receives a code and returns a string based on the locale and options provided when instantiating         * [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)         *         * @param code The `code` to provide depends on the `type` passed to display name during creation:         *  - If the type is `"region"`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),         *    or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).         *  - If the type is `"script"`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).         *  - If the type is `"language"`, code should be a `languageCode` ["-" `scriptCode`] ["-" `regionCode` ] *("-" `variant` )         *    subsequence of the unicode_language_id grammar in [UTS 35's Unicode Language and Locale Identifiers grammar](https://unicode.org/reports/tr35/#Unicode_language_identifier).         *    `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.         *  - If the type is `"currency"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).         */        of(code: string): string | undefined;        /**         * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current         * [`Intl/DisplayNames`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).         */        resolvedOptions(): ResolvedDisplayNamesOptions;    }    /**     * The [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)     * object enables the consistent translation of language, region and script display names.     *     * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).     */    const DisplayNames: {        prototype: DisplayNames;        /**         * @param locales A string with a BCP 47 language tag, or an array of such strings.         *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)         *   page.         *         * @param options An object for setting up a display name.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).         */        new(locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;        /**         * Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.         *         * @param locales A string with a BCP 47 language tag, or an array of such strings.         *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)         *   page.         *         * @param options An object with a locale matcher.         *         * @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale.         *         * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).         */        supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher }): BCP47LanguageTag[];    };}
 |