import type { FocusEventHandler, MouseEventHandler } from '../../_util/EventInterface'; import type { CSSProperties, PropType } from 'vue'; import type { PickerLocale } from '.'; import type { SizeType } from '../../config-provider'; import type { AlignType } from '../../vc-align/interface'; import type { CustomFormat, DisabledTime, DisabledTimes, EventValue, PanelMode, PickerMode, RangeValue } from '../../vc-picker/interface'; import type { DateRender } from '../../vc-picker/panels/DatePanel/DateBody'; import type { MonthCellRender } from '../../vc-picker/panels/MonthPanel/MonthBody'; import type { SharedTimeProps } from '../../vc-picker/panels/TimePanel'; import type { RangeDateRender, RangeInfo, RangeType } from '../../vc-picker/RangePicker'; import type { VueNode } from '../../_util/type'; declare function commonProps(): { id: StringConstructor; dropdownClassName: StringConstructor; dropdownAlign: { type: PropType; }; popupStyle: { type: PropType; }; transitionName: StringConstructor; placeholder: StringConstructor; allowClear: { type: BooleanConstructor; default: any; }; autofocus: { type: BooleanConstructor; default: any; }; disabled: { type: BooleanConstructor; default: any; }; tabindex: NumberConstructor; open: { type: BooleanConstructor; default: any; }; defaultOpen: { type: BooleanConstructor; default: any; }; /** Make input readOnly to avoid popup keyboard in mobile */ inputReadOnly: { type: BooleanConstructor; default: any; }; getPopupContainer: { type: PropType<(node: HTMLElement) => HTMLElement>; }; panelRender: { type: PropType<(originPanel: VueNode) => VueNode>; }; onChange: { type: PropType<(value: DateType | string | null, dateString: string) => void>; }; 'onUpdate:value': { type: PropType<(value: DateType | string | null) => void>; }; onOk: { type: PropType<(value: DateType | string | null) => void>; }; onOpenChange: { type: PropType<(open: boolean) => void>; }; 'onUpdate:open': { type: PropType<(open: boolean) => void>; }; onFocus: { type: PropType; }; onBlur: { type: PropType; }; onMousedown: { type: PropType; }; onMouseup: { type: PropType; }; onMouseenter: { type: PropType; }; onMouseleave: { type: PropType; }; onClick: { type: PropType; }; onContextmenu: { type: PropType; }; onKeydown: { type: PropType<(event: KeyboardEvent, preventDefault: () => void) => void>; }; role: StringConstructor; name: StringConstructor; autocomplete: StringConstructor; direction: { type: PropType<"ltr" | "rtl">; }; showToday: { type: BooleanConstructor; default: any; }; showTime: { type: PropType>; default: any; }; locale: { type: PropType; }; size: { type: PropType; }; bordered: { type: BooleanConstructor; default: any; }; dateRender: { type: PropType>; }; disabledDate: { type: PropType<(date: DateType) => boolean>; }; mode: { type: PropType; }; picker: { type: PropType; }; valueFormat: StringConstructor; /** @deprecated Please use `disabledTime` instead. */ disabledHours: PropType<() => number[]>; /** @deprecated Please use `disabledTime` instead. */ disabledMinutes: PropType<(hour: number) => number[]>; /** @deprecated Please use `disabledTime` instead. */ disabledSeconds: PropType<(hour: number, minute: number) => number[]>; }; export interface CommonProps { id?: string; prefixCls?: string; dropdownClassName?: string; dropdownAlign?: AlignType; popupStyle?: CSSProperties; transitionName?: string; placeholder?: string; allowClear?: boolean; autofocus?: boolean; disabled?: boolean; tabindex?: number; open?: boolean; defaultOpen?: boolean; inputReadOnly?: boolean; suffixIcon?: VueNode; clearIcon?: VueNode; prevIcon?: VueNode; nextIcon?: VueNode; superPrevIcon?: VueNode; superNextIcon?: VueNode; getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement; panelRender?: (originPanel: VueNode) => VueNode; onChange?: (value: DateType | string | null, dateString: string) => void; 'onUpdate:value'?: (value: DateType | string | null) => void; onOk?: (value: DateType | string | null) => void; onOpenChange?: (open: boolean) => void; 'onUpdate:open'?: (open: boolean) => void; onFocus?: FocusEventHandler; onBlur?: FocusEventHandler; onMousedown?: MouseEventHandler; onMouseup?: MouseEventHandler; onMouseenter?: MouseEventHandler; onMouseleave?: MouseEventHandler; onClick?: MouseEventHandler; onContextmenu?: MouseEventHandler; onKeydown?: (event: KeyboardEvent, preventDefault: () => void) => void; role?: string; name?: string; autocomplete?: string; direction?: 'ltr' | 'rtl'; showToday?: boolean; showTime?: boolean | SharedTimeProps; locale?: PickerLocale; size?: SizeType; bordered?: boolean; dateRender?: DateRender; disabledDate?: (date: DateType) => boolean; mode?: PanelMode; picker?: PickerMode; valueFormat?: string; } declare function datePickerProps(): { defaultPickerValue: { type: PropType; }; defaultValue: { type: PropType; }; value: { type: PropType; }; disabledTime: { type: PropType>; }; format: { type: PropType | (string | CustomFormat)[]>; }; renderExtraFooter: { type: PropType<(mode: PanelMode) => VueNode>; }; showNow: { type: BooleanConstructor; default: any; }; monthCellRender: { type: PropType>; }; monthCellContentRender: { type: PropType>; }; }; export interface DatePickerProps { defaultPickerValue?: DateType | string; defaultValue?: DateType | string; value?: DateType | string; disabledTime?: DisabledTime; format?: string | CustomFormat | (string | CustomFormat)[]; renderExtraFooter?: (mode: PanelMode) => VueNode; showNow?: boolean; monthCellRender?: MonthCellRender; monthCellContentRender?: MonthCellRender; } declare function rangePickerProps(): { allowEmpty: { type: PropType<[boolean, boolean]>; }; dateRender: { type: PropType>; }; defaultPickerValue: { type: PropType<[DateType, DateType] | [string, string]>; }; defaultValue: { type: PropType<[DateType, DateType] | [string, string]>; }; value: { type: PropType<[DateType, DateType] | [string, string]>; }; disabledTime: { type: PropType<(date: EventValue, type: RangeType) => DisabledTimes>; }; disabled: { type: PropType; }; format: StringConstructor; renderExtraFooter: { type: PropType<() => VueNode>; }; separator: { type: StringConstructor; }; ranges: { type: PropType Exclude, null>)>>; }; placeholder: ArrayConstructor; mode: { type: PropType<[PanelMode, PanelMode]>; }; onChange: { type: PropType<(value: RangeValue | RangeValue | null, dateString: [string, string]) => void>; }; 'onUpdate:value': { type: PropType<(value: RangeValue | RangeValue | null) => void>; }; onCalendarChange: { type: PropType<(values: RangeValue | RangeValue, formatString: [string, string], info: RangeInfo) => void>; }; onPanelChange: { type: PropType<(values: RangeValue | RangeValue, modes: [PanelMode, PanelMode]) => void>; }; onOk: { type: PropType<(dates: RangeValue | RangeValue) => void>; }; }; export interface RangePickerProps { allowEmpty?: [boolean, boolean]; dateRender?: RangeDateRender; defaultPickerValue?: RangeValue | RangeValue; defaultValue?: RangeValue | RangeValue; value?: RangeValue | RangeValue; disabledTime?: (date: EventValue, type: RangeType) => DisabledTimes; disabled?: [boolean, boolean]; format?: string; renderExtraFooter?: () => VueNode; separator?: string; ranges?: Record, null> | (() => Exclude, null>)>; placeholder?: [string, string]; mode?: [PanelMode, PanelMode]; onChange?: (value: RangeValue | RangeValue | null, dateString: [string, string]) => void; 'onUpdate:value'?: (value: RangeValue | RangeValue | null) => void; onCalendarChange?: (values: RangeValue | RangeValue, formatString: [string, string], info: RangeInfo) => void; onPanelChange?: (values: RangeValue | RangeValue, modes: [PanelMode, PanelMode]) => void; onOk?: (dates: RangeValue | RangeValue) => void; } export declare type ExtraDatePickerProps = { valueFormat?: string; defaultPickerValue?: DateType | string; defaultValue?: DateType | string; value?: DateType | string; }; export declare type ExtraRangePickerProps = { valueFormat?: string; defaultPickerValue?: RangeValue | RangeValue; defaultValue?: RangeValue | RangeValue; value?: RangeValue | RangeValue; }; export { commonProps, datePickerProps, rangePickerProps };