import { ListPatternFieldsData, ListPatternLocaleData, LiteralPart } from '@formatjs/ecma402-abstract'; export interface IntlListFormatOptions { /** * The locale matching algorithm to use. * Possible values are "lookup" and "best fit"; the default is "best fit". * For information about this option, see * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation. */ localeMatcher?: 'best fit' | 'lookup'; /** * The format of output message. * Possible values are : * - "conjunction" that stands for "and"-based lists (default, e.g., "A, B, and C") * - "disjunction" that stands for "or"-based lists (e.g., "A, B, or C"). * - "unit" stands for lists of values with units (e.g., "5 pounds, 12 ounces"). */ type?: 'conjunction' | 'disjunction' | 'unit'; /** * The length of the formatted message. * Possible values are: * - "long" (default, e.g., "A, B, and C"); * - "short" (e.g., "A, B, C"), or * - "narrow" (e.g., "A B C"). * When style is "short" or "narrow", "unit" is the only allowed value for the type option. */ style?: 'long' | 'short' | 'narrow'; } export interface ResolvedIntlListFormatOptions { /** * 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. */ locale: string; /** * The format of output message. * Possible values are : * - "conjunction" that stands for "and"-based lists (default, e.g., "A, B, and C") * - "disjunction" that stands for "or"-based lists (e.g., "A, B, or C"). * - "unit" stands for lists of values with units (e.g., "5 pounds, 12 ounces"). */ type: 'conjunction' | 'disjunction' | 'unit'; /** * The length of the formatted message. * Possible values are: * - "long" (default, e.g., "A, B, and C"); * - "short" (e.g., "A, B, C"), or * - "narrow" (e.g., "A B C"). * When style is "short" or "narrow", "unit" is the only allowed value for the type option. */ style: 'long' | 'short' | 'narrow'; } export type Part = LiteralPart | ElementPart | ElementPart; export interface ElementPart { type: 'element'; value: T; } export default class ListFormat { constructor(locales?: string | string[], options?: IntlListFormatOptions); format(elements: string[]): string; formatToParts(elements: string[]): Part[]; resolvedOptions(): ResolvedIntlListFormatOptions; static supportedLocalesOf(locales: string | string[], options?: Pick): string[]; static __addLocaleData(...data: ListPatternLocaleData[]): void; static localeData: Record; private static availableLocales; private static __defaultLocale; private static getDefaultLocale; private static relevantExtensionKeys; static polyfilled: boolean; private static readonly __INTERNAL_SLOT_MAP__; }