import type { CalendarDayType, CalendarItem, CalendarTimeFilter, CalendarType } from './types'
/**
 * 比较两个时间的日期是否相等
 * @param {timestamp} date1
 * @param {timestamp} date2
 */
export declare function compareDate(date1: number, date2: number | null): 1 | 0 | -1
/**
 * 判断是否是范围选择
 * @param {string} type
 */
export declare function isRange(type: CalendarType): boolean
/**
 * 比较两个日期的月份是否相等
 * @param {timestamp} date1
 * @param {timestamp} date2
 */
export declare function compareMonth(date1: number, date2: number): 1 | 0 | -1
/**
 * 比较两个日期的年份是否一致
 * @param {timestamp} date1
 * @param {timestamp} date2
 */
export declare function compareYear(date1: number, date2: number): 1 | 0 | -1
/**
 * 获取一个月的最后一天
 * @param {number} year
 * @param {number} month
 */
export declare function getMonthEndDay(year: number, month: number): number
/**
 * 格式化年月
 * @param {timestamp} date
 */
export declare function formatMonthTitle(date: number): string
/**
 * 根据下标获取星期
 * @param {number} index
 */
export declare function getWeekLabel(index: number): any
/**
 * 获取一个月第一天的样式
 * @param {number} index
 * @param {timestamp} date
 * @param {number} firstDayOfWeek
 */
export declare function getFirstDayStyle(
  index: number,
  date: number,
  firstDayOfWeek: number,
): string
/**
 * 格式化年份
 * @param {timestamp} date
 */
export declare function formatYearTitle(date: number): string
/**
 * 根据最小日期和最大日期获取这之间总共有几个月份
 * @param {timestamp} minDate
 * @param {timestamp} maxDate
 */
export declare function getMonths(minDate: number, maxDate: number): number[]
/**
 * 根据最小日期和最大日期获取这之间总共有几年
 * @param {timestamp} minDate
 * @param {timestamp} maxDate
 */
export declare function getYears(minDate: number, maxDate: number): number[]
/**
 * 获取一个日期所在周的第一天和最后一天
 * @param {timestamp} date
 */
export declare function getWeekRange(date: number, firstDayOfWeek: number): number[]
/**
 * 获取日期偏移量
 * @param {timestamp} date1
 * @param {timestamp} date2
 */
export declare function getDayOffset(date1: number, date2: number): number
/**
 * 获取偏移日期
 * @param {timestamp} date
 * @param {number} offset
 */
export declare function getDayByOffset(date: number, offset: number): number
/**
 * 获取月份偏移量
 * @param {timestamp} date1
 * @param {timestamp} date2
 */
export declare function getMonthOffset(date1: number, date2: number): number
/**
 * 获取偏移月份
 * @param {timestamp} date
 * @param {number} offset
 */
export declare function getMonthByOffset(date: number, offset: number): number
/**
 * 获取默认时间，格式化为数组
 * @param {array|string|null} defaultTime
 */
export declare function getDefaultTime(defaultTime: string[] | string | null): number[][]
/**
 * 根据默认时间获取日期
 * @param {timestamp} date
 * @param {array} defaultTime
 */
export declare function getDateByDefaultTime(date: number, defaultTime: number[]): number
/**
 * 根据最小最大日期获取时间数据，用于填入picker
 * @param {*} param0
 */
export declare function getTimeData({
  date,
  minDate,
  maxDate,
  isHideSecond,
  filter,
}: {
  date: number
  minDate: number
  maxDate: number
  isHideSecond: boolean
  filter?: CalendarTimeFilter
}): CalendarItem[][]
/**
 * 获取当前是第几周
 * @param {timestamp} date
 */
export declare function getWeekNumber(date: number | Date): number
export declare function getItemClass(
  monthType: CalendarDayType,
  value: number | (number | null)[],
  type: CalendarType,
): string
