import { Locale } from 'date-fns'; import { EventObject, ParsedRangeEvent } from './foundation'; export declare const sortDate: (a: Date | string, b: Date | string) => 1 | -1; export declare const checkWeekend: (val: Date) => boolean; export declare const getCurrDate: () => Date; export declare const round: (value: number) => number; export declare const getPos: (value: Date | number) => number; export declare const isAllDayEvent: (event: EventObject) => boolean; /** * * @param {object} event * normalize event object: * if event object does not have start time, add start time = end time - 1h; if not same day, then startday of the end * if event object does not have end time, add end time = start time + 1h; if not same day, then endday of the start */ export declare const amendEvent: (event: EventObject) => EventObject; /** * * @param {arr} events * find the max topInd and used as row height */ export declare const calcRowHeight: (events: ParsedRangeEvent[]) => number; export interface DateObj { ind: number; date: Date; dayString: string; weekday: string; isToday: boolean; isWeekend: boolean; isSameMonth: boolean; month: string; } export type weekStartsOnEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6; export declare const calcRangeData: (value: Date, start: Date, rangeLen: number, mode: string, locale: Locale, weekStartsOn: weekStartsOnEnum) => DateObj[]; /** * * @param {Date} date * @param {Date} monthStart current month start date, using for month mode * @param {string} mode * @param {string} locale * @returns {object[]} { date: Date, dayString: string, ind: number, isToday: boolean, isWeekend: boolean, weekday: string } * create weekly object array */ export declare const calcWeekData: (value: Date, monthStart: Date | null, mode: string, locale: Locale, weekStartsOn: weekStartsOnEnum) => DateObj[]; /** * * @param {object} event * @param {boolean} allDay * @returns {object[]} { allDay: boolean, data: Date, start: Date, end: Date, children: ReactNode } * parsed a spanned all-day event into multiple dates */ export declare const parseAllDayEvent: (event: EventObject, allDay?: boolean, currDate?: Date) => any[]; /** * * @param {object} event * @returns {object[]} { allDay: boolean, data: Date, start: Date, end: Date, children: ReactNode } * parsed events */ export declare const parseEvent: (event: EventObject) => any[]; /** * * @param {arr} arr * @param {key} * @param {function} func callback function * @returns {map} * convert events array to may, use datestring as key */ export declare const convertEventsArrToMap: (arr: EventObject[], key: 'start' | 'date', func: (val: Date) => Date, displayValue?: Date) => Map; /** * @returns {arr} * filter out event that is not in the date range */ export declare const filterEvents: (events: Map, start: Date, end: Date) => Map; /** * @returns {arr} * filter out event that is not in the week range */ export declare const filterWeeklyEvents: (events: Map, weekStart: Date, weekStartsOn: weekStartsOnEnum) => Map; /** * @returns {arr} * arrange and sort all day event for a range */ export declare const parseRangeAllDayEvent: (event: EventObject[], startDate: Date, rangeStart: Date, rangeEnd: Date, parsed: Array>) => ParsedRangeEvent[][]; /** * @returns {arr} * arrange and sort weekly all day event */ export declare const parseWeeklyAllDayEvent: (event: EventObject[], startDate: Date, weekStart: Date, parsed: Array>, weekStartsOn: weekStartsOnEnum) => ParsedRangeEvent[][]; export declare const collectDailyEvents: (events: ParsedRangeEvent[][]) => ParsedRangeEvent[][]; export declare const renderDailyEvent: (event: EventObject) => { startPos: number; endPos: number; children: any; allDay: boolean; };