// @flow
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.

type Interval = {
  start: Date | number,
  end: Date | number
}

type Locale = {
  formatDistance: Function,
  formatRelative: Function,
  localize: {
    ordinalNumber: Function,
    era: Function,
    quarter: Function,
    month: Function,
    day: Function,
    dayPeriod: Function
  },
  formatLong: Object,
  date: Function,
  time: Function,
  dateTime: Function,
  match: {
    ordinalNumber: Function,
    era: Function,
    quarter: Function,
    month: Function,
    day: Function,
    dayPeriod: Function
  },
  options?: {
    weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
    firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7
  }
}

type CurriedFn1<A, R> = <A>(a: A) => R

type CurriedFn2<A, B, R> = <A>(
  a: A
) => CurriedFn1<B, R> | (<A, B>(a: A, b: B) => R)

declare module.exports: CurriedFn2<string, Date | number, string>