import type { Ref, RenderFunction, SetupContext } from 'vue' import type { DatePickerProps as ElDatePickerProps } from 'element-plus' import type { DatePickerProps, DateValue, PanelModel } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance, Merge, } from '../common' export declare const KDatePicker: DefineComponentApp export type KDatePickerInstance = DefineComponentInstance export interface KDatePickerConstructor extends ComponentBaseOptions, KDatePickerMethods { props: KDatePickerProps context: SetupContext getRefMaps(): KDatePickerPrivateRef getComputeMaps(): KDatePickerPrivateComputed renderVN: RenderFunction } export interface KDatePickerPrivateRef { refElem: Ref } export interface KDatePickerPrivateComputed { } export type KDatePickerProps = Merge export interface KDatePickerEmits { change: (val: DateValue) => void blur: (e: FocusEvent) => void focus: (e: FocusEvent) => void clear: () => void calendarChange: (val: [Date, null | Date]) => void panelChange: (date: Date | [Date, Date], mode: PanelModel, view?: string) => void visibleChange: (visibility: boolean) => void } export interface KDatePickerSlots { default: () => ComponentSlotType 'range-separator': () => ComponentSlotType 'prev-month': () => ComponentSlotType 'next-month': () => ComponentSlotType 'prev-year': () => ComponentSlotType 'next-year': () => ComponentSlotType } export type KDatePickerMethods = { focus: () => void blur: () => void handleOpen: () => void handleClose: () => void }