import { ComponentsProps } from '@mui/material/styles';
import { ComponentsOverrides, PickerToolbarOwnerState } from '@mui/x-date-pickers/internals';
import { FieldOwnerState, PickerOwnerState } from '@mui/x-date-pickers/models';
import { DateRangeCalendarOwnerState } from "../DateRangeCalendar/DateRangeCalendar.types.js";
import { DateRangePickerDayOwnerState } from "../DateRangePickerDay/DateRangePickerDay.types.js";
export interface PickersProComponents<Theme = unknown> {
  MuiDateRangeCalendar?: {
    defaultProps?: ComponentsProps['MuiDateRangeCalendar'];
    styleOverrides?: ComponentsOverrides<Theme, DateRangeCalendarOwnerState>['MuiDateRangeCalendar'];
  };
  MuiDateRangePickerDay?: {
    defaultProps?: ComponentsProps['MuiDateRangePickerDay'];
    styleOverrides?: ComponentsOverrides<Theme, DateRangePickerDayOwnerState>['MuiDateRangePickerDay'];
  };
  MuiDateRangePickerDay2?: {
    defaultProps?: ComponentsProps['MuiDateRangePickerDay2'];
    styleOverrides?: ComponentsOverrides<Theme>['MuiDateRangePickerDay2'];
  };
  MuiDateTimeRangePickerTabs?: {
    defaultProps?: ComponentsProps['MuiDateTimeRangePickerTabs'];
    styleOverrides?: ComponentsOverrides<Theme, PickerOwnerState>['MuiDateTimeRangePickerTabs'];
  };
  MuiDateRangePickerToolbar?: {
    defaultProps?: ComponentsProps['MuiDateRangePickerToolbar'];
    styleOverrides?: ComponentsOverrides<Theme, PickerToolbarOwnerState>['MuiDateRangePickerToolbar'];
  };
  MuiDateTimeRangePickerToolbar?: {
    defaultProps?: ComponentsProps['MuiDateTimeRangePickerToolbar'];
    styleOverrides?: ComponentsOverrides<Theme, PickerToolbarOwnerState>['MuiDateTimeRangePickerToolbar'];
  };
  MuiPickersRangeCalendarHeader?: {
    defaultProps?: ComponentsProps['MuiPickersRangeCalendarHeader'];
  };
  MuiMultiInputDateRangeField?: {
    defaultProps?: ComponentsProps['MuiMultiInputDateRangeField'];
    styleOverrides?: ComponentsOverrides<Theme, FieldOwnerState>['MuiMultiInputDateRangeField'];
  };
  MuiMultiInputDateTimeRangeField?: {
    defaultProps?: ComponentsProps['MuiMultiInputDateTimeRangeField'];
    styleOverrides?: ComponentsOverrides<Theme, FieldOwnerState>['MuiMultiInputDateTimeRangeField'];
  };
  MuiMultiInputTimeRangeField?: {
    defaultProps?: ComponentsProps['MuiMultiInputTimeRangeField'];
    styleOverrides?: ComponentsOverrides<Theme, FieldOwnerState>['MuiMultiInputTimeRangeField'];
  };
  MuiSingleInputDateRangeField?: {
    defaultProps?: ComponentsProps['MuiSingleInputDateRangeField'];
  };
  MuiSingleInputDateTimeRangeField?: {
    defaultProps?: ComponentsProps['MuiSingleInputDateTimeRangeField'];
  };
  MuiSingleInputTimeRangeField?: {
    defaultProps?: ComponentsProps['MuiSingleInputTimeRangeField'];
  };
  MuiDateRangePicker?: {
    defaultProps?: ComponentsProps['MuiDateRangePicker'];
  };
  MuiDesktopDateRangePicker?: {
    defaultProps?: ComponentsProps['MuiDesktopDateRangePicker'];
  };
  MuiMobileDateRangePicker?: {
    defaultProps?: ComponentsProps['MuiMobileDateRangePicker'];
  };
  MuiStaticDateRangePicker?: {
    defaultProps?: ComponentsProps['MuiStaticDateRangePicker'];
  };
  MuiDateTimeRangePicker?: {
    defaultProps?: ComponentsProps['MuiDateTimeRangePicker'];
  };
  MuiDesktopDateTimeRangePicker?: {
    defaultProps?: ComponentsProps['MuiDesktopDateTimeRangePicker'];
  };
  MuiMobileDateTimeRangePicker?: {
    defaultProps?: ComponentsProps['MuiMobileDateTimeRangePicker'];
  };
}
declare module '@mui/material/styles' {
  interface Components<Theme = unknown> extends PickersProComponents<Theme> {}
}