import { AnyObject } from "../../_util/type.js";
import { DatePickerEmits, DatePickerSlots, InternalPickerProps } from "./generateSinglePicker.js";
import { GenericTimePickerProps, PickerLocale, PickerProps, PickerPropsWithMultiple, RangePickerProps } from "./interface.js";
import { InternalRangePickerProps, RangePickerEmits, RangePickerSlots } from "./generateRangePicker.js";
import * as vue689 from "vue";
import { GenerateConfig } from "@v-c/picker/generate/index";

//#region src/date-picker/generatePicker/index.d.ts
declare function generatePicker<DateType extends AnyObject = AnyObject>(generateConfig: GenerateConfig<DateType>): vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps> & {
  WeekPicker: vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps>;
  MonthPicker: vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps>;
  YearPicker: vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps>;
  RangePicker: vue689.DefineSetupFnComponent<InternalRangePickerProps<DateType>, RangePickerEmits<DateType>, vue689.SlotsType<RangePickerSlots>, InternalRangePickerProps<DateType>, vue689.PublicProps>;
  TimePicker: vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps>;
  QuarterPicker: vue689.DefineSetupFnComponent<InternalPickerProps<DateType>, DatePickerEmits<DateType>, vue689.SlotsType<DatePickerSlots>, InternalPickerProps<DateType>, vue689.PublicProps>;
};
//#endregion
export { type GenericTimePickerProps, type PickerLocale, type PickerProps, type PickerPropsWithMultiple, type RangePickerProps, generatePicker as default };