import { DatePickerEmits, DatePickerSlots, InternalPickerProps } from "./generatePicker/generateSinglePicker.js";
import generatePicker from "./generatePicker/index.js";
import { PickerLocale, PickerPropsWithMultiple } from "./generatePicker/interface.js";
import { InternalRangePickerProps, RangePickerEmits, RangePickerSlots } from "./generatePicker/generateRangePicker.js";
import * as vue41 from "vue";
import { Dayjs } from "dayjs";

//#region src/date-picker/index.d.ts
type DatePickerProps<ValueType = Dayjs, IsMultiple extends boolean = boolean> = PickerPropsWithMultiple<Dayjs, InternalPickerProps<Dayjs>, ValueType, IsMultiple>;
type MonthPickerProps<ValueType = Dayjs | Dayjs> = Omit<DatePickerProps<ValueType>, 'picker'>;
type WeekPickerProps<ValueType = Dayjs | Dayjs> = Omit<DatePickerProps<ValueType>, 'picker'>;
type RangePickerProps = InternalRangePickerProps<Dayjs>;
declare const DatePicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps> & {
  WeekPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
  MonthPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
  YearPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
  RangePicker: vue41.DefineSetupFnComponent<InternalRangePickerProps<Dayjs>, RangePickerEmits<Dayjs>, vue41.SlotsType<RangePickerSlots>, InternalRangePickerProps<Dayjs>, vue41.PublicProps>;
  TimePicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
  QuarterPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
};
type DatePickerType = typeof DatePicker & {
  generatePicker: typeof generatePicker;
  _InternalPanelDoNotUseOrYouWillBeFired: any;
  _InternalRangePanelDoNotUseOrYouWillBeFired: any;
};
declare const _default: DatePickerType;
declare const DateRangePicker: vue41.DefineSetupFnComponent<InternalRangePickerProps<Dayjs>, RangePickerEmits<Dayjs>, vue41.SlotsType<RangePickerSlots>, InternalRangePickerProps<Dayjs>, vue41.PublicProps>;
declare const DateWeekPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
declare const DateMonthPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
declare const DateYearPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
declare const DateQuarterPicker: vue41.DefineSetupFnComponent<InternalPickerProps<Dayjs>, DatePickerEmits<Dayjs>, vue41.SlotsType<DatePickerSlots>, InternalPickerProps<Dayjs>, vue41.PublicProps>;
//#endregion
export { DateMonthPicker, type DatePickerEmits, DatePickerProps, type DatePickerSlots, DatePickerType, DateQuarterPicker, DateRangePicker, DateWeekPicker, DateYearPicker, MonthPickerProps, type PickerLocale, RangePickerProps, WeekPickerProps, _default as default };