import { CalendarMode, DateType } from '@mezzanine-ui/core/calendar'; import { RefObject } from 'react'; import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types'; import { CalendarProps } from './Calendar'; import { CalendarFooterActionsProps } from './CalendarFooterActions'; import { CalendarQuickSelectProps } from './CalendarQuickSelect'; export interface RangeCalendarProps extends Omit, 'onChange' | 'children'>, Pick { /** * Footer action buttons props */ actions?: CalendarFooterActionsProps['actions']; /** * Other props you may provide to each `Calendar` */ calendarProps?: Omit; /** * React Ref for the first (left) calendar */ firstCalendarRef?: RefObject; /** * Use this prop to switch calendars. * @default 'day' */ mode?: CalendarMode; /** * Click handler for every cell on calendars. * When completing a range (second click), returns normalized [start, end]. * When starting a new range (first click), returns the clicked date. * The normalization ensures start is beginning of period and end is end of period based on mode. */ onChange?: (value: [DateType, DateType | undefined]) => void; /** * Quick select options for range calendar. * Provide options for users to quickly select specific date ranges. */ quickSelect?: Pick; /** * The reference date for getting the calendar. * **The type of `referenceDate` should be the same as your declared `DateType`.** */ referenceDate: DateType; /** * React Ref for the second (right) calendar */ secondCalendarRef?: RefObject; /** * The displaying cells will be marked as active * if the single value of it matches any date object in the array. * **The type of `value` should be the same as your declared `DateType`.** */ value?: DateType | DateType[]; } /** * The react component for `mezzanine` range calendar. * Displays two calendars side by side for range selection. * Notice that any component related to calendar should be used along with `CalendarContext`. */ declare const RangeCalendar: import("react").ForwardRefExoticComponent>; export default RangeCalendar;