import { ElementType } from 'react'; import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared'; import { SlotComponentProps } from '@mui/utils/types'; import { OverrideProps } from '@mui/types'; /** * Props specific to modal (mobile) date picker behavior */ export interface ModalOnlyPickerProps { /** * Callback fired when the popup is opened. */ onOpen?: () => void; /** * Callback fired when the popup is closed. */ onClose?: () => void; /** * Controls whether the popup is open. * @default false */ open?: boolean; } /** * Slots for the ModalDatePicker component */ export interface ModalDatePickerSlots extends BaseDatePickerSlots { /** * Component used for the dialog. * @default Dialog */ dialog?: React.ElementType; /** * Component used for the header. * @default PickerViewHeader */ header?: React.ElementType; } /** * Slot props for the ModalDatePicker component */ export interface ModalDatePickerSlotProps extends BaseDatePickerSlotProps { /** * Props for the dialog slot. */ dialog?: SlotComponentProps, ModalDatePickerOwnerState>; /** * Props for the header slot. */ header?: SlotComponentProps, ModalDatePickerOwnerState>; } export interface ModalDatePickerComponentProps extends Omit, ModalOnlyPickerProps { } export interface ModalDatePickerTypeMap

{ props: P & ModalDatePickerComponentProps & { /** * Overridable component slots. * @default {} */ slots?: ModalDatePickerSlots; /** * The props used for each component slot. * @default {} */ slotProps?: ModalDatePickerSlotProps; }; defaultComponent: D; } /** * Props for the ModalDatePicker component */ export type ModalDatePickerProps = OverrideProps, D> & { component?: D; }; /** * Owner state for ModalDatePicker */ export type ModalDatePickerOwnerState = ModalDatePickerProps;