githrun

A CLI tool to run Python scrip...
Log | Files | Refs | README | LICENSE

lib.es2020.intl.d.ts (22438B)


      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
      6 
      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.
     11 
     12 See the Apache Version 2.0 License for specific language governing permissions
     13 and limitations under the License.
     14 ***************************************************************************** */
     15 
     16 
     17 /// <reference no-default-lib="true"/>
     18 
     19 /// <reference lib="es2018.intl" />
     20 declare namespace Intl {
     21     /**
     22      * A string that is a valid [Unicode BCP 47 Locale Identifier](https://unicode.org/reports/tr35/#Unicode_locale_identifier).
     23      *
     24      * For example: "fa", "es-MX", "zh-Hant-TW".
     25      *
     26      * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
     27      */
     28     type UnicodeBCP47LocaleIdentifier = string;
     29 
     30     /**
     31      * Unit to use in the relative time internationalized message.
     32      *
     33      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).
     34      */
     35     type RelativeTimeFormatUnit =
     36         | "year"
     37         | "years"
     38         | "quarter"
     39         | "quarters"
     40         | "month"
     41         | "months"
     42         | "week"
     43         | "weeks"
     44         | "day"
     45         | "days"
     46         | "hour"
     47         | "hours"
     48         | "minute"
     49         | "minutes"
     50         | "second"
     51         | "seconds";
     52 
     53     /**
     54      * Value of the `unit` property in objects returned by
     55      * `Intl.RelativeTimeFormat.prototype.formatToParts()`. `formatToParts` and
     56      * `format` methods accept either singular or plural unit names as input,
     57      * but `formatToParts` only outputs singular (e.g. "day") not plural (e.g.
     58      * "days").
     59      *
     60      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
     61      */
     62     type RelativeTimeFormatUnitSingular =
     63         | "year"
     64         | "quarter"
     65         | "month"
     66         | "week"
     67         | "day"
     68         | "hour"
     69         | "minute"
     70         | "second";
     71 
     72     /**
     73      * The locale matching algorithm to use.
     74      *
     75      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).
     76      */
     77     type RelativeTimeFormatLocaleMatcher = "lookup" | "best fit";
     78 
     79     /**
     80      * The format of output message.
     81      *
     82      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
     83      */
     84     type RelativeTimeFormatNumeric = "always" | "auto";
     85 
     86     /**
     87      * The length of the internationalized message.
     88      *
     89      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
     90      */
     91     type RelativeTimeFormatStyle = "long" | "short" | "narrow";
     92 
     93     /**
     94      * The locale or locales to use
     95      *
     96      * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
     97      */
     98     type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;
     99 
    100     /**
    101      * An object with some or all of properties of `options` parameter
    102      * of `Intl.RelativeTimeFormat` constructor.
    103      *
    104      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).
    105      */
    106     interface RelativeTimeFormatOptions {
    107         /** 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). */
    108         localeMatcher?: RelativeTimeFormatLocaleMatcher;
    109         /** The format of output message. */
    110         numeric?: RelativeTimeFormatNumeric;
    111         /** The length of the internationalized message. */
    112         style?: RelativeTimeFormatStyle;
    113     }
    114 
    115     /**
    116      * An object with properties reflecting the locale
    117      * and formatting options computed during initialization
    118      * of the `Intl.RelativeTimeFormat` object
    119      *
    120      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).
    121      */
    122     interface ResolvedRelativeTimeFormatOptions {
    123         locale: UnicodeBCP47LocaleIdentifier;
    124         style: RelativeTimeFormatStyle;
    125         numeric: RelativeTimeFormatNumeric;
    126         numberingSystem: string;
    127     }
    128 
    129     /**
    130      * An object representing the relative time format in parts
    131      * that can be used for custom locale-aware formatting.
    132      *
    133      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).
    134      */
    135     type RelativeTimeFormatPart =
    136         | {
    137             type: "literal";
    138             value: string;
    139         }
    140         | {
    141             type: Exclude<NumberFormatPartTypes, "literal">;
    142             value: string;
    143             unit: RelativeTimeFormatUnitSingular;
    144         };
    145 
    146     interface RelativeTimeFormat {
    147         /**
    148          * Formats a value and a unit according to the locale
    149          * and formatting options of the given
    150          * [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)
    151          * object.
    152          *
    153          * While this method automatically provides the correct plural forms,
    154          * the grammatical form is otherwise as neutral as possible.
    155          *
    156          * It is the caller's responsibility to handle cut-off logic
    157          * such as deciding between displaying "in 7 days" or "in 1 week".
    158          * This API does not support relative dates involving compound units.
    159          * e.g "in 5 days and 4 hours".
    160          *
    161          * @param value -  Numeric value to use in the internationalized relative time message
    162          *
    163          * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
    164          *
    165          * @throws `RangeError` if `unit` was given something other than `unit` possible values
    166          *
    167          * @returns {string} Internationalized relative time message as string
    168          *
    169          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).
    170          */
    171         format(value: number, unit: RelativeTimeFormatUnit): string;
    172 
    173         /**
    174          *  Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.
    175          *
    176          *  @param value - Numeric value to use in the internationalized relative time message
    177          *
    178          *  @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.
    179          *
    180          *  @throws `RangeError` if `unit` was given something other than `unit` possible values
    181          *
    182          *  [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).
    183          */
    184         formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];
    185 
    186         /**
    187          * Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.
    188          *
    189          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).
    190          */
    191         resolvedOptions(): ResolvedRelativeTimeFormatOptions;
    192     }
    193 
    194     /**
    195      * The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)
    196      * object is a constructor for objects that enable language-sensitive relative time formatting.
    197      *
    198      * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).
    199      */
    200     const RelativeTimeFormat: {
    201         /**
    202          * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects
    203          *
    204          * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
    205          *  For the general form and interpretation of the locales argument,
    206          *  see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
    207          *
    208          * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
    209          *  with some or all of options of `RelativeTimeFormatOptions`.
    210          *
    211          * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.
    212          *
    213          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
    214          */
    215         new (
    216             locales?: LocalesArgument,
    217             options?: RelativeTimeFormatOptions,
    218         ): RelativeTimeFormat;
    219 
    220         /**
    221          * Returns an array containing those of the provided locales
    222          * that are supported in date and time formatting
    223          * without having to fall back to the runtime's default locale.
    224          *
    225          * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.
    226          *  For the general form and interpretation of the locales argument,
    227          *  see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
    228          *
    229          * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)
    230          *  with some or all of options of the formatting.
    231          *
    232          * @returns An array containing those of the provided locales
    233          *  that are supported in date and time formatting
    234          *  without having to fall back to the runtime's default locale.
    235          *
    236          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).
    237          */
    238         supportedLocalesOf(
    239             locales?: LocalesArgument,
    240             options?: RelativeTimeFormatOptions,
    241         ): UnicodeBCP47LocaleIdentifier[];
    242     };
    243 
    244     interface NumberFormatOptionsStyleRegistry {
    245         unit: never;
    246     }
    247 
    248     interface NumberFormatOptionsCurrencyDisplayRegistry {
    249         narrowSymbol: never;
    250     }
    251 
    252     interface NumberFormatOptionsSignDisplayRegistry {
    253         auto: never;
    254         never: never;
    255         always: never;
    256         exceptZero: never;
    257     }
    258 
    259     type NumberFormatOptionsSignDisplay = keyof NumberFormatOptionsSignDisplayRegistry;
    260 
    261     interface NumberFormatOptions {
    262         numberingSystem?: string | undefined;
    263         compactDisplay?: "short" | "long" | undefined;
    264         notation?: "standard" | "scientific" | "engineering" | "compact" | undefined;
    265         signDisplay?: NumberFormatOptionsSignDisplay | undefined;
    266         unit?: string | undefined;
    267         unitDisplay?: "short" | "long" | "narrow" | undefined;
    268         currencySign?: "standard" | "accounting" | undefined;
    269     }
    270 
    271     interface ResolvedNumberFormatOptions {
    272         compactDisplay?: "short" | "long";
    273         notation: "standard" | "scientific" | "engineering" | "compact";
    274         signDisplay: NumberFormatOptionsSignDisplay;
    275         unit?: string;
    276         unitDisplay?: "short" | "long" | "narrow";
    277         currencySign?: "standard" | "accounting";
    278     }
    279 
    280     interface NumberFormatPartTypeRegistry {
    281         compact: never;
    282         exponentInteger: never;
    283         exponentMinusSign: never;
    284         exponentSeparator: never;
    285         unit: never;
    286         unknown: never;
    287     }
    288 
    289     interface DateTimeFormatOptions {
    290         calendar?: string | undefined;
    291         dayPeriod?: "narrow" | "short" | "long" | undefined;
    292         numberingSystem?: string | undefined;
    293 
    294         dateStyle?: "full" | "long" | "medium" | "short" | undefined;
    295         timeStyle?: "full" | "long" | "medium" | "short" | undefined;
    296         hourCycle?: "h11" | "h12" | "h23" | "h24" | undefined;
    297     }
    298 
    299     type LocaleHourCycleKey = "h12" | "h23" | "h11" | "h24";
    300     type LocaleCollationCaseFirst = "upper" | "lower" | "false";
    301 
    302     interface LocaleOptions {
    303         /** A string containing the language, and the script and region if available. */
    304         baseName?: string;
    305         /** The part of the Locale that indicates the locale's calendar era. */
    306         calendar?: string;
    307         /** Flag that defines whether case is taken into account for the locale's collation rules. */
    308         caseFirst?: LocaleCollationCaseFirst;
    309         /** The collation type used for sorting */
    310         collation?: string;
    311         /** The time keeping format convention used by the locale. */
    312         hourCycle?: LocaleHourCycleKey;
    313         /** The primary language subtag associated with the locale. */
    314         language?: string;
    315         /** The numeral system used by the locale. */
    316         numberingSystem?: string;
    317         /** Flag that defines whether the locale has special collation handling for numeric characters. */
    318         numeric?: boolean;
    319         /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */
    320         region?: string;
    321         /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */
    322         script?: string;
    323     }
    324 
    325     interface Locale extends LocaleOptions {
    326         /** A string containing the language, and the script and region if available. */
    327         baseName: string;
    328         /** The primary language subtag associated with the locale. */
    329         language: string;
    330         /** Gets the most likely values for the language, script, and region of the locale based on existing values. */
    331         maximize(): Locale;
    332         /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */
    333         minimize(): Locale;
    334         /** Returns the locale's full locale identifier string. */
    335         toString(): UnicodeBCP47LocaleIdentifier;
    336     }
    337 
    338     /**
    339      * Constructor creates [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
    340      * objects
    341      *
    342      * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).
    343      *  For the general form and interpretation of the locales argument,
    344      *  see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).
    345      *
    346      * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.
    347      *
    348      * @returns [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.
    349      *
    350      * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).
    351      */
    352     const Locale: {
    353         new (tag: UnicodeBCP47LocaleIdentifier | Locale, options?: LocaleOptions): Locale;
    354     };
    355 
    356     type DisplayNamesFallback =
    357         | "code"
    358         | "none";
    359 
    360     type DisplayNamesType =
    361         | "language"
    362         | "region"
    363         | "script"
    364         | "calendar"
    365         | "dateTimeField"
    366         | "currency";
    367 
    368     type DisplayNamesLanguageDisplay =
    369         | "dialect"
    370         | "standard";
    371 
    372     interface DisplayNamesOptions {
    373         localeMatcher?: RelativeTimeFormatLocaleMatcher;
    374         style?: RelativeTimeFormatStyle;
    375         type: DisplayNamesType;
    376         languageDisplay?: DisplayNamesLanguageDisplay;
    377         fallback?: DisplayNamesFallback;
    378     }
    379 
    380     interface ResolvedDisplayNamesOptions {
    381         locale: UnicodeBCP47LocaleIdentifier;
    382         style: RelativeTimeFormatStyle;
    383         type: DisplayNamesType;
    384         fallback: DisplayNamesFallback;
    385         languageDisplay?: DisplayNamesLanguageDisplay;
    386     }
    387 
    388     interface DisplayNames {
    389         /**
    390          * Receives a code and returns a string based on the locale and options provided when instantiating
    391          * [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
    392          *
    393          * @param code The `code` to provide depends on the `type` passed to display name during creation:
    394          *  - 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),
    395          *    or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).
    396          *  - If the type is `"script"`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).
    397          *  - If the type is `"language"`, code should be a `languageCode` ["-" `scriptCode`] ["-" `regionCode` ] *("-" `variant` )
    398          *    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).
    399          *    `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.
    400          *  - If the type is `"currency"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
    401          *
    402          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).
    403          */
    404         of(code: string): string | undefined;
    405         /**
    406          * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current
    407          * [`Intl/DisplayNames`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.
    408          *
    409          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).
    410          */
    411         resolvedOptions(): ResolvedDisplayNamesOptions;
    412     }
    413 
    414     /**
    415      * The [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)
    416      * object enables the consistent translation of language, region and script display names.
    417      *
    418      * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).
    419      */
    420     const DisplayNames: {
    421         prototype: DisplayNames;
    422 
    423         /**
    424          * @param locales A string with a BCP 47 language tag, or an array of such strings.
    425          *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
    426          *   page.
    427          *
    428          * @param options An object for setting up a display name.
    429          *
    430          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).
    431          */
    432         new (locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;
    433 
    434         /**
    435          * 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.
    436          *
    437          * @param locales A string with a BCP 47 language tag, or an array of such strings.
    438          *   For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
    439          *   page.
    440          *
    441          * @param options An object with a locale matcher.
    442          *
    443          * @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.
    444          *
    445          * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).
    446          */
    447         supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): UnicodeBCP47LocaleIdentifier[];
    448     };
    449 
    450     interface CollatorConstructor {
    451         new (locales?: LocalesArgument, options?: CollatorOptions): Collator;
    452         (locales?: LocalesArgument, options?: CollatorOptions): Collator;
    453         supportedLocalesOf(locales: LocalesArgument, options?: CollatorOptions): string[];
    454     }
    455 
    456     interface DateTimeFormatConstructor {
    457         new (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;
    458         (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;
    459         supportedLocalesOf(locales: LocalesArgument, options?: DateTimeFormatOptions): string[];
    460     }
    461 
    462     interface NumberFormatConstructor {
    463         new (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;
    464         (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;
    465         supportedLocalesOf(locales: LocalesArgument, options?: NumberFormatOptions): string[];
    466     }
    467 
    468     interface PluralRulesConstructor {
    469         new (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;
    470         (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;
    471 
    472         supportedLocalesOf(locales: LocalesArgument, options?: { localeMatcher?: "lookup" | "best fit"; }): string[];
    473     }
    474 }
© notamitgamer • Site Built: 2026-07-21 13:58:23 UTC • git-mirror commit: 1037f62 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror