/// export declare enum Month { JANUARY = 0, FEBRUARY = 1, MARCH = 2, APRIL = 3, MAY = 4, JUNE = 5, JULY = 6, AUGUST = 7, SEPTEMBER = 8, OCTOBER = 9, NOVEMBER = 10, DECEMBER = 11 } export declare enum Day { SUNDAY = 0, MONDAY = 1, TUESDAY = 2, WEDNESDAY = 3, THURSDAY = 4, FRIDAY = 5, SATURDAY = 6 } export interface Options { /** * What day a week starts on within the calendar matrix. * * @default Day.SUNDAY */ weekStartsOn?: Day; /** * The initial viewing date. * * @default new Date() */ viewing?: Date; /** * The initial date(s) selection. * * @default [] */ selected?: Date[]; /** * The number of months in the calendar. * * @default 1 */ numberOfMonths?: number; } export interface Returns { /** * Returns a copy of the given date with the time set to 00:00:00:00. */ clearTime: (date: Date) => Date; /** * Returns whether or not a date is between 2 other dates (inclusive). */ inRange: (date: Date, min: Date, max: Date) => boolean; /** * The date represented in the calendar matrix. Note that * the month and year are the only parts used. */ viewing: Date; /** * Set the date represented in the calendar matrix. Note that * the month and year are the only parts used. */ setViewing: React.Dispatch>; /** * Set the viewing date to today. */ viewToday: () => void; /** * Set the viewing date to the given month. */ viewMonth: (month: Month) => void; /** * Set the viewing date to the month before the current. */ viewPreviousMonth: () => void; /** * Set the viewing date to the month after the current. */ viewNextMonth: () => void; /** * Set the viewing date to the given year. */ viewYear: (year: number) => void; /** * Set the viewing date to the year before the current. */ viewPreviousYear: () => void; /** * Set the viewing date to the year after the current. */ viewNextYear: () => void; /** * The dates currently selected. */ selected: Date[]; /** * Override the currently selected dates. */ setSelected: React.Dispatch>; /** * Reset the selected dates to []. */ clearSelected: () => void; /** * Determine whether or not a date has been selected. */ isSelected: (date: Date) => boolean; /** * Select one or more dates. */ select: (date: Date | Date[], replaceExisting?: boolean) => void; /** * Deselect one or more dates. */ deselect: (date: Date | Date[]) => void; /** * Toggle the selection of a date. */ toggle: (date: Date, replaceExisting?: boolean) => void; /** * Select a range of dates (inclusive). */ selectRange: (start: Date, end: Date, replaceExisting?: boolean) => void; /** * Deselect a range of dates (inclusive). */ deselectRange: (start: Date, end: Date) => void; /** * A matrix of days based on the current viewing date. */ calendar: Date[][][]; } export declare const useLilius: ({ weekStartsOn, viewing: initialViewing, selected: initialSelected, numberOfMonths, }?: Options) => Returns;