import React, { ComponentPropsWithoutRef } from 'react'; declare type DatepickerCalendarAttributes = ComponentPropsWithoutRef<'div'>; interface sideItemsProps { active?: boolean; divider?: boolean; text?: string; onClick?: (e: object, item: object) => void | React.MouseEventHandler | null; othersProps?: object; } interface actionFooterProps { hasLink?: boolean; text?: string; onClick?: React.MouseEventHandler; othersProps?: object; } interface sideBarProps { title?: string; items?: sideItemsProps[]; } interface footerProps { content?: React.ReactNode; actionPrimary?: actionFooterProps[]; actionSecondary?: actionFooterProps[]; } export interface DayProps { dayLabel?: string[]; } export interface CalendarInfoProps { /** * To display the border */ hasBorder?: boolean; /** * To determine custom holiday date by passing Date object */ holidayDate?: [] | object; /** * To determine custom info by passing Date object */ infoDate?: [] | object; currentMonth?: number; currentYear?: number; monthsLabel?: string[]; heightOfElement?: number; isHoliday?: boolean; } export interface DateProps extends Pick { /** * To determine disabled date by passing Date object */ disabledDate?: [] | object; /** * To determine enable date by passing Date object */ enabledDate?: [] | object; /** * To pass text information just below the date, by passing Date object */ dateLabel?: [] | object; /** * To determine selected first date by passing Date object */ firstDate?: Date | null; flagDate?: Date; hasColor?: string; maxDate?: Date; minDate?: Date; secondDate?: Date | null; /** * To pass callback when selecting date */ onClick?: (data: Date) => void; } export interface MonthProps extends Pick, Pick, Pick { currentYear?: number; flagDate?: Date; transformMonth?: number; yearLabel?: any; /** * To pass custom props to nav button next */ buttonNextProps?: object; /** * To pass custom props to nav button prev */ buttonPrevProps?: object; /** * To specify maximum range of date displayed */ maxDate?: Date; /** * To specify minimum range of date displayed */ minDate?: Date; /** * To specify number of month to show */ monthsToShow?: number; /** * To determine selected second date by passing date object */ secondDate?: Date | null; } export interface CalendarProps extends Omit, Pick { /** * To pass custom className to create custom styles */ className?: string; /** * To display the footer */ footer?: footerProps[]; /** * To specify language of Datepicker */ lang?: string; /** * To display the sidebar */ sideBarItems?: sideBarProps[]; /** * To set the inital value of timePicker (if withTimepicker is enabled) */ time?: object; /** * To set the properties of timepicker, must first be enabled by props withTimepicker */ timepickerProps?: object; /** * To enable timepicker */ withTimepicker?: boolean; /** * To pass callback when time value is changed */ onChangeTime?: React.MouseEventHandler; /** * To pass callback when selecting second date */ onClickDouble?: (data: Date) => void | React.MouseEventHandler | null; } export {};