| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | declare var Intl: any;declare type Path = string;declare type Locale = string;declare type MessageContext = {  list: (index: number) => mixed,  named: (key: string) => mixed,  linked: (key: string) => TranslateResult,  values: any,  path: string,  formatter: Formatter,  messages: LocaleMessages,  locale: Locale}declare type MessageFunction = (ctx: MessageContext) => stringdeclare type FallbackLocale = string | string[] | false | { [locale: string]: string[] };declare type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;declare type LocaleMessageObject = { [key: Path]: LocaleMessage };declare type LocaleMessageArray = Array<LocaleMessage>;declare type LocaleMessages = { [key: Locale]: LocaleMessageObject };// This options is the same as Intl.DateTimeFormat constructor options:// http://www.ecma-international.org/ecma-402/2.0/#sec-intl-datetimeformat-constructordeclare type DateTimeFormatOptions = {  year?: 'numeric' | '2-digit',  month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long',  day?: 'numeric' | '2-digit',  hour?: 'numeric' | '2-digit',  minute?: 'numeric' | '2-digit',  second?: 'numeric' | '2-digit',  weekday?: 'narrow' | 'short' | 'long',  hour12?: boolean,  era?: 'narrow' | 'short' | 'long',  timeZone?: string, // IANA time zone  timeZoneName?: 'short' | 'long',  localeMatcher?: 'lookup' | 'best fit',  formatMatcher?: 'basic' | 'best fit'};declare type DateTimeFormat = { [key: string]: DateTimeFormatOptions };declare type DateTimeFormats = { [key: Locale]: DateTimeFormat };// This options is the same as Intl.NumberFormat constructor options:// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormatdeclare type NumberFormatOptions = {  style?: 'decimal' | 'currency' | 'percent',  currency?: string, // ISO 4217 currency codes  currencyDisplay?: 'symbol' | 'code' | 'name',  useGrouping?: boolean,  minimumIntegerDigits?: number,  minimumFractionDigits?: number,  maximumFractionDigits?: number,  minimumSignificantDigits?: number,  maximumSignificantDigits?: number,  localeMatcher?: 'lookup' | 'best fit',  formatMatcher?: 'basic' | 'best fit'};declare type NumberFormat = { [key: string]: NumberFormatOptions };declare type NumberFormats = { [key: Locale]: NumberFormat };declare type Modifiers = { [key: string]: (str: string) => string };declare type TranslateResult = string | LocaleMessages;declare type DateTimeFormatResult = string;declare type NumberFormatResult = string;declare type MissingHandler = (locale: Locale, key: Path, vm?: any) => string | void;declare type PostTranslationHandler = (str: string, key?: string) => string;declare type GetChoiceIndex = (choice: number, choicesLength: number) => numberdeclare type ComponentInstanceCreatedListener = (newI18n: I18n, rootI18n: I18n) => void;declare type FormattedNumberPartType = 'currency' | 'decimal' | 'fraction' | 'group' | 'infinity' | 'integer' | 'literal' | 'minusSign' | 'nan' | 'plusSign' | 'percentSign';declare type FormattedNumberPart = {  type: FormattedNumberPartType,  value: string,};// This array is the same as Intl.NumberFormat.formatToParts() return value:// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts#Return_valuedeclare type NumberFormatToPartsResult = Array<FormattedNumberPart>;declare type WarnHtmlInMessageLevel = 'off' | 'warn' | 'error';declare type I18nOptions = {  locale?: Locale,  fallbackLocale?: FallbackLocale,  messages?: LocaleMessages,  dateTimeFormats?: DateTimeFormats,  datetimeFormats?: DateTimeFormats,  numberFormats?: NumberFormats,  formatter?: Formatter,  missing?: MissingHandler,  modifiers?: Modifiers,  root?: I18n, // for internal  fallbackRoot?: boolean,  fallbackRootWithEmptyString?: boolean,  formatFallbackMessages?: boolean,  sync?: boolean,  silentTranslationWarn?: boolean | RegExp,  silentFallbackWarn?: boolean | RegExp,  pluralizationRules?: PluralizationRules,  preserveDirectiveContent?: boolean,  warnHtmlInMessage?: WarnHtmlInMessageLevel,  sharedMessages?: LocaleMessage,  postTranslation?: PostTranslationHandler,  componentInstanceCreatedListener?: ComponentInstanceCreatedListener,  escapeParameterHtml?: boolean,  __VUE_I18N_BRIDGE__?: string,};declare type IntlAvailability = {  dateTimeFormat: boolean,  numberFormat: boolean};declare type PluralizationRules = {  [lang: string]: GetChoiceIndex,}declare interface I18n {  static install: () => void, // for Vue plugin interface  static version: string,  static availabilities: IntlAvailability,  get vm (): any, // for internal  get locale (): Locale,  set locale (locale: Locale): void,  get fallbackLocale (): FallbackLocale,  set fallbackLocale (locale: FallbackLocale): void,  get messages (): LocaleMessages,  get dateTimeFormats (): DateTimeFormats,  get numberFormats (): NumberFormats,  get availableLocales (): Locale[],  get missing (): ?MissingHandler,  set missing (handler: MissingHandler): void,  get formatter (): Formatter,  set formatter (formatter: Formatter): void,  get formatFallbackMessages (): boolean,  set formatFallbackMessages (fallback: boolean): void,  get silentTranslationWarn (): boolean | RegExp,  set silentTranslationWarn (silent: boolean | RegExp): void,  get silentFallbackWarn (): boolean | RegExp,  set silentFallbackWarn (slient: boolean | RegExp): void,  get pluralizationRules (): PluralizationRules,  set pluralizationRules (rules: PluralizationRules): void,  get preserveDirectiveContent (): boolean,  set preserveDirectiveContent (preserve: boolean): void,  get warnHtmlInMessage (): WarnHtmlInMessageLevel,  set warnHtmlInMessage (level: WarnHtmlInMessageLevel): void,  get postTranslation (): ?PostTranslationHandler,  set postTranslation (handler: PostTranslationHandler): void,  getLocaleMessage (locale: Locale): LocaleMessageObject,  setLocaleMessage (locale: Locale, message: LocaleMessageObject): void,  mergeLocaleMessage (locale: Locale, message: LocaleMessageObject): void,  t (key: Path, ...values: any): TranslateResult,  i (key: Path, locale: Locale, values: Object): TranslateResult,  tc (key: Path, choice?: number, ...values: any): TranslateResult,  te (key: Path, locale?: Locale): boolean,  getDateTimeFormat (locale: Locale): DateTimeFormat,  setDateTimeFormat (locale: Locale, format: DateTimeFormat): void,  mergeDateTimeFormat (locale: Locale, format: DateTimeFormat): void,  d (value: number | Date, ...args: any): DateTimeFormatResult,  getNumberFormat (locale: Locale): NumberFormat,  setNumberFormat (locale: Locale, format: NumberFormat): void,  mergeNumberFormat (locale: Locale, format: NumberFormat): void,  n (value: number, ...args: any): NumberFormatResult,  getChoiceIndex: GetChoiceIndex,  pluralizationRules: PluralizationRules,  preserveDirectiveContent: boolean};declare interface Formatter {  interpolate (message: string, values: any, path: string): (Array<any> | null)};
 |