import { default as React } from 'react'; import { DateRange, DayPickerProps, Locale, Matcher } from 'react-day-picker'; import { ModalContentProps } from '../../../overlays/modal'; import { CalendarView } from '../date-field'; type DateFieldMode = 'single' | 'multiple' | 'range'; type DateValue = Date | Date[] | DateRange | undefined; export interface DatePickerModalProps extends Omit { /** Whether the modal is open. Pair with `onOpenChange`. */ open: boolean; /** Fires when the modal opens or closes (Escape / backdrop / Cancel / Confirm). */ onOpenChange: (open: boolean) => void; /** Current committed value. Used to seed the draft when the modal opens. */ value: DateValue; /** * Fires with the chosen value when the user clicks "Confirm". Cancel / * Escape / backdrop dismiss discards the draft. */ onConfirm: (date: DateValue) => void; /** Selection mode forwarded to `Calendar`. @default single */ mode?: DateFieldMode; numberOfMonths?: number; locale?: Locale; localeCode?: string; showOutsideDays?: boolean; disabledMatchers?: Matcher[]; required?: boolean; availableDays?: Date[] | ((date: Date) => boolean); footer?: React.ReactNode; monthYearSelectType?: 'dropdown' | 'grid'; showNavigation?: boolean; selectionLevel?: CalendarView; /** Grid the calendar opens on, independent of `selectionLevel`. Defaults to `selectionLevel`. */ initialView?: CalendarView; /** Initial month to display when the modal opens. Defaults to the selected date or today. */ initialMonth?: Date; /** * Extra props spread onto `Modal.Content`, overriding the responsive width / `position="center"` * defaults (including `fullscreen`). `className` is merged, not replaced, so the internal layout survives. */ modalProps?: Omit; /** * Modal title text. Falls back to a mode-aware i18n key — * `date-field.modal-title` / `-range` / `-multiple`. */ title?: string; } export declare const DatePickerModal: { (props: DatePickerModalProps): JSX.Element; displayName: string; }; export default DatePickerModal;