2020-08-24 19:43:54 -04:00
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
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"/>
2022-09-19 17:00:01 -04:00
/// <reference lib="es2018.intl" />
2020-08-24 19:43:54 -04:00
declare namespace Intl {
/ * *
2024-03-26 18:52:57 -04:00
* A string that is a valid [ Unicode BCP 47 Locale Identifier ] ( https : //unicode.org/reports/tr35/#Unicode_locale_identifier).
2020-08-24 19:43:54 -04:00
*
2024-03-26 18:52:57 -04:00
* For example : "fa" , "es-MX" , "zh-Hant-TW" .
*
* See [ MDN - Intl - locales argument ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
2020-08-24 19:43:54 -04:00
* /
2021-05-27 19:33:11 -04:00
type UnicodeBCP47LocaleIdentifier = string ;
2020-08-24 19:43:54 -04:00
/ * *
* 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 =
2021-12-09 17:12:21 -05:00
| "year"
| "years"
| "quarter"
| "quarters"
| "month"
| "months"
| "week"
| "weeks"
| "day"
| "days"
| "hour"
| "hours"
| "minute"
| "minutes"
| "second"
| "seconds" ;
2020-08-24 19:43:54 -04:00
2022-09-19 17:00:01 -04:00
/ * *
* Value of the ` unit ` property in objects returned by
* ` Intl.RelativeTimeFormat.prototype.formatToParts() ` . ` formatToParts ` and
* ` format ` methods accept either singular or plural unit names as input ,
* but ` formatToParts ` only outputs singular ( e . g . "day" ) not plural ( e . g .
* "days" ) .
*
* [ MDN ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
* /
2023-12-06 18:49:34 -05:00
type RelativeTimeFormatUnitSingular =
2022-09-19 17:00:01 -04:00
| "year"
| "quarter"
| "month"
| "week"
| "day"
| "hour"
| "minute"
| "second" ;
2020-08-24 19:43:54 -04:00
/ * *
* 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" ;
2021-12-09 17:12:21 -05:00
/ * *
2024-03-26 18:52:57 -04:00
* The locale or locales to use
2021-12-09 17:12:21 -05:00
*
2024-03-26 18:52:57 -04:00
* See [ MDN - Intl - locales argument ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
2022-05-31 20:19:18 -04:00
* /
2022-12-07 12:59:59 -05:00
type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly ( UnicodeBCP47LocaleIdentifier | Locale ) [ ] | undefined ;
2022-05-31 20:19:18 -04:00
2020-08-24 19:43:54 -04:00
/ * *
* 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 {
2021-12-09 17:12:21 -05:00
/** 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). */
2020-08-24 19:43:54 -04:00
localeMatcher? : RelativeTimeFormatLocaleMatcher ;
2021-12-09 17:12:21 -05:00
/** The format of output message. */
2020-08-24 19:43:54 -04:00
numeric? : RelativeTimeFormatNumeric ;
2021-12-09 17:12:21 -05:00
/** The length of the internationalized message. */
2020-08-24 19:43:54 -04:00
style? : RelativeTimeFormatStyle ;
}
/ * *
* An object with properties reflecting the locale
* and formatting options computed during initialization
2021-12-09 17:12:21 -05:00
* of the ` Intl.RelativeTimeFormat ` object
2020-08-24 19:43:54 -04:00
*
* [ MDN ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).
* /
interface ResolvedRelativeTimeFormatOptions {
2021-05-27 19:33:11 -04:00
locale : UnicodeBCP47LocaleIdentifier ;
2020-08-24 19:43:54 -04:00
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).
* /
2022-09-19 17:00:01 -04:00
type RelativeTimeFormatPart =
| {
2023-12-06 18:49:34 -05:00
type : "literal" ;
value : string ;
}
2022-09-19 17:00:01 -04:00
| {
2023-12-06 18:49:34 -05:00
type : Exclude < NumberFormatPartTypes , " literal " > ;
value : string ;
unit : RelativeTimeFormatUnitSingular ;
} ;
2020-08-24 19:43:54 -04:00
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 .
2021-12-09 17:12:21 -05:00
*
2020-08-24 19:43:54 -04:00
* 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
*
2021-12-09 17:12:21 -05:00
* @param unit - [ Unit ] ( https : //tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
2020-08-24 19:43:54 -04:00
*
* @throws ` RangeError ` if ` unit ` was given something other than ` unit ` possible values
*
2021-12-09 17:12:21 -05:00
* @returns { string } Internationalized relative time message as string
2020-08-24 19:43:54 -04:00
*
* [ MDN ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).
* /
2021-12-09 17:12:21 -05:00
format ( value : number , unit : RelativeTimeFormatUnit ) : string ;
2020-08-24 19:43:54 -04:00
/ * *
2021-12-09 17:12:21 -05:00
* Returns an array of objects representing the relative time format in parts that can be used for custom locale - aware formatting .
2020-08-24 19:43:54 -04:00
*
* @param value - Numeric value to use in the internationalized relative time message
*
2021-12-09 17:12:21 -05:00
* @param unit - [ Unit ] ( https : //tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
2020-08-24 19:43:54 -04:00
*
* @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).
* /
2021-12-09 17:12:21 -05:00
formatToParts ( value : number , unit : RelativeTimeFormatUnit ) : RelativeTimeFormatPart [ ] ;
2020-08-24 19:43:54 -04:00
/ * *
* 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 : {
/ * *
2021-12-09 17:12:21 -05:00
* Creates [ Intl . RelativeTimeFormat ] ( https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects
2020-08-24 19:43:54 -04:00
*
* @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)
2021-12-09 17:12:21 -05:00
* with some or all of options of ` RelativeTimeFormatOptions ` .
2020-08-24 19:43:54 -04:00
*
* @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).
* /
2023-12-06 18:49:34 -05:00
new (
2024-03-26 18:52:57 -04:00
locales? : LocalesArgument ,
2020-08-24 19:43:54 -04:00
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 (
2024-03-26 18:52:57 -04:00
locales? : LocalesArgument ,
2020-08-24 19:43:54 -04:00
options? : RelativeTimeFormatOptions ,
2021-05-27 19:33:11 -04:00
) : UnicodeBCP47LocaleIdentifier [ ] ;
2020-08-24 19:43:54 -04:00
} ;
2024-07-03 10:09:54 -04:00
interface NumberFormatOptionsStyleRegistry {
unit : never ;
}
interface NumberFormatOptionsCurrencyDisplayRegistry {
narrowSymbol : never ;
}
interface NumberFormatOptionsSignDisplayRegistry {
auto : never ;
never : never ;
always : never ;
exceptZero : never ;
}
type NumberFormatOptionsSignDisplay = keyof NumberFormatOptionsSignDisplayRegistry ;
2020-08-24 19:43:54 -04:00
interface NumberFormatOptions {
2024-07-03 10:09:54 -04:00
numberingSystem? : string | undefined ;
2021-12-09 17:12:21 -05:00
compactDisplay ? : "short" | "long" | undefined ;
notation ? : "standard" | "scientific" | "engineering" | "compact" | undefined ;
2024-07-03 10:09:54 -04:00
signDisplay? : NumberFormatOptionsSignDisplay | undefined ;
2021-12-09 17:12:21 -05:00
unit? : string | undefined ;
unitDisplay ? : "short" | "long" | "narrow" | undefined ;
2024-07-03 10:09:54 -04:00
currencySign ? : "standard" | "accounting" | undefined ;
2020-08-24 19:43:54 -04:00
}
interface ResolvedNumberFormatOptions {
2021-12-09 17:12:21 -05:00
compactDisplay ? : "short" | "long" ;
2024-07-03 10:09:54 -04:00
notation : "standard" | "scientific" | "engineering" | "compact" ;
signDisplay : NumberFormatOptionsSignDisplay ;
2020-08-24 19:43:54 -04:00
unit? : string ;
2021-12-09 17:12:21 -05:00
unitDisplay ? : "short" | "long" | "narrow" ;
2024-07-03 10:09:54 -04:00
currencySign ? : "standard" | "accounting" ;
}
interface NumberFormatPartTypeRegistry {
compact : never ;
exponentInteger : never ;
exponentMinusSign : never ;
exponentSeparator : never ;
unit : never ;
unknown : never ;
2020-08-24 19:43:54 -04:00
}
2021-02-24 23:16:19 -05:00
interface DateTimeFormatOptions {
2024-01-14 19:26:57 -05:00
calendar? : string | ( typeof globalThis extends { Temporal : { CalendarProtocol : infer T ; } ; } ? T : undefined ) | undefined ;
2021-12-09 17:12:21 -05:00
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. */
2021-02-24 23:16:19 -05:00
calendar? : string ;
2021-12-09 17:12:21 -05:00
/** 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. */
2021-02-24 23:16:19 -05:00
numberingSystem? : string ;
2021-12-09 17:12:21 -05:00
/** 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 {
2022-05-31 20:19:18 -04:00
/** A string containing the language, and the script and region if available. */
baseName : string ;
/** The primary language subtag associated with the locale. */
language : string ;
2021-12-09 17:12:21 -05:00
/** 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. */
2024-03-26 18:52:57 -04:00
toString ( ) : UnicodeBCP47LocaleIdentifier ;
2021-02-24 23:16:19 -05:00
}
2021-12-09 17:12:21 -05:00
/ * *
* 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 : {
2024-03-26 18:52:57 -04:00
new ( tag : UnicodeBCP47LocaleIdentifier | Locale , options? : LocaleOptions ) : Locale ;
2021-12-09 17:12:21 -05:00
} ;
2022-05-31 20:19:18 -04:00
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 {
2022-03-01 15:44:43 -05:00
locale : UnicodeBCP47LocaleIdentifier ;
2021-12-09 17:12:21 -05:00
style : RelativeTimeFormatStyle ;
2022-05-31 20:19:18 -04:00
type : DisplayNamesType ;
fallback : DisplayNamesFallback ;
languageDisplay? : DisplayNamesLanguageDisplay ;
2021-12-09 17:12:21 -05:00
}
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).
* /
2022-03-01 15:44:43 -05:00
of ( code : string ) : string | undefined ;
2021-12-09 17:12:21 -05:00
/ * *
* 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).
* /
2022-05-31 20:19:18 -04:00
resolvedOptions ( ) : ResolvedDisplayNamesOptions ;
2021-12-09 17:12:21 -05:00
}
/ * *
* 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).
* /
2023-12-06 18:49:34 -05:00
new ( locales : LocalesArgument , options : DisplayNamesOptions ) : DisplayNames ;
2021-12-09 17:12:21 -05:00
/ * *
* 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).
* /
2024-03-26 18:52:57 -04:00
supportedLocalesOf ( locales? : LocalesArgument , options ? : { localeMatcher? : RelativeTimeFormatLocaleMatcher ; } ) : UnicodeBCP47LocaleIdentifier [ ] ;
2021-12-09 17:12:21 -05:00
} ;
2024-03-26 18:52:57 -04:00
interface CollatorConstructor {
new ( locales? : LocalesArgument , options? : CollatorOptions ) : Collator ;
( locales? : LocalesArgument , options? : CollatorOptions ) : Collator ;
supportedLocalesOf ( locales : LocalesArgument , options? : CollatorOptions ) : string [ ] ;
}
interface DateTimeFormatConstructor {
new ( locales? : LocalesArgument , options? : DateTimeFormatOptions ) : DateTimeFormat ;
( locales? : LocalesArgument , options? : DateTimeFormatOptions ) : DateTimeFormat ;
supportedLocalesOf ( locales : LocalesArgument , options? : DateTimeFormatOptions ) : string [ ] ;
}
interface NumberFormatConstructor {
new ( locales? : LocalesArgument , options? : NumberFormatOptions ) : NumberFormat ;
( locales? : LocalesArgument , options? : NumberFormatOptions ) : NumberFormat ;
supportedLocalesOf ( locales : LocalesArgument , options? : NumberFormatOptions ) : string [ ] ;
}
interface PluralRulesConstructor {
new ( locales? : LocalesArgument , options? : PluralRulesOptions ) : PluralRules ;
( locales? : LocalesArgument , options? : PluralRulesOptions ) : PluralRules ;
supportedLocalesOf ( locales : LocalesArgument , options ? : { localeMatcher ? : "lookup" | "best fit" ; } ) : string [ ] ;
}
2020-08-24 19:43:54 -04:00
}