import { ApFormItemSlots } from '../../interface';
import { ApFormItemDateRangeProps } from '../interface';
import { ComponentInternalInstance, VNode, CSSProperties, HTMLAttributes, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, Slot, ComponentPublicInstance, ComponentOptionsBase, RendererNode, RendererElement, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties, DefineComponent } from 'vue';
import { FieldMode, ApFieldDateRangeProps } from '../../..';
import { ButtonSize, SizeType } from '@aplus-frontend/antdv/es/button';
import { FocusEventHandler, MouseEventHandler } from '@aplus-frontend/antdv/es/_util/EventInterface';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { PickerLocale } from '@aplus-frontend/antdv/es/date-picker/generatePicker';
import { Variant } from '@aplus-frontend/antdv/es/config-provider/context';
import { AlignType } from '@aplus-frontend/antdv/es/vc-align/interface';
import { Dayjs } from 'dayjs';
import { EventValue, DisabledTimes, RangeValue, CustomFormat, PresetDate, PanelMode, PickerMode } from '@aplus-frontend/antdv/es/vc-picker/interface';
import { RangeDateRender, RangeType, RangeInfo } from '@aplus-frontend/antdv/es/vc-picker/RangePicker';
import { MonthCellRender } from '@aplus-frontend/antdv/es/vc-picker/panels/MonthPanel/MonthBody';
import { LiteralUnion } from '../../../type';
import { ApFormatPresetType } from '../../../ap-field/date/interface';
import { ZoneAlias } from '@aplus-frontend/utils';
import { SharedTimeProps } from '@aplus-frontend/antdv/es/vc-picker/panels/TimePanel';
import { OnCleanup } from '@vue/reactivity';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        suffixIcon?: any;
        prevIcon?: any;
        nextIcon?: any;
        superPrevIcon?: any;
        superNextIcon?: any;
        dateRender?: any;
        renderExtraFooter?: any;
        default?: any;
        separator?: any;
        clearIcon?: any;
    } & Omit<ApFormItemSlots, "default">> & {
        suffixIcon?: any;
        prevIcon?: any;
        nextIcon?: any;
        superPrevIcon?: any;
        superNextIcon?: any;
        dateRender?: any;
        renderExtraFooter?: any;
        default?: any;
        separator?: any;
        clearIcon?: any;
    } & Omit<ApFormItemSlots, "default">;
    refs: {
        dateRangeRef: ({
            $: ComponentInternalInstance;
            $data: {};
            $props: {
                readonly mode?: FieldMode | undefined;
                readonly class?: unknown;
                readonly style?: unknown;
                readonly emptyText?: string | undefined;
                readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
                readonly size?: ButtonSize;
                readonly onBlur?: FocusEventHandler | undefined;
                readonly onClick?: MouseEventHandler | undefined;
                readonly onContextmenu?: MouseEventHandler | undefined;
                readonly onFocus?: FocusEventHandler | undefined;
                readonly onKeydown?: ((event: KeyboardEvent, preventDefault: () => void) => void) | undefined;
                readonly onMousedown?: ( MouseEventHandler & ((e: MouseEvent) => void)) | undefined;
                readonly onMouseenter?: MouseEventHandler | undefined;
                readonly onMouseleave?: MouseEventHandler | undefined;
                readonly onMouseup?: MouseEventHandler | undefined;
                readonly open?: boolean | undefined;
                readonly separator?: VueNode;
                readonly disabled?: boolean | [boolean, boolean] | undefined;
                readonly direction?: "ltr" | "rtl" | undefined;
                readonly placeholder?: [string, string] | undefined;
                readonly id?: string | undefined;
                readonly getPopupContainer?: ((node: HTMLElement) => HTMLElement) | undefined;
                readonly prefixCls?: string | undefined;
                readonly locale?: PickerLocale | undefined;
                readonly variant?: Variant | undefined;
                readonly name?: string | undefined;
                readonly autofocus?: boolean | undefined;
                readonly autocomplete?: string | undefined;
                readonly bordered?: boolean | undefined;
                readonly clearIcon?: VueNode;
                readonly allowClear?: boolean | undefined;
                readonly suffixIcon?: VueNode;
                readonly transitionName?: string | undefined;
                readonly dropdownClassName?: string | undefined;
                readonly tabindex?: number | undefined;
                readonly defaultOpen?: boolean | undefined;
                readonly dropdownAlign?: AlignType | undefined;
                readonly onOpenChange?: ((open: boolean) => void) | undefined;
                readonly role?: string | undefined;
                readonly popupStyle?: CSSProperties | undefined;
                readonly picker?: "time" | "month" | "year" | "date" | "week" | "quarter" | undefined;
                readonly defaultPickerValue?: ([ Dayjs, Dayjs] & [ EventValue<Dayjs>, EventValue<Dayjs>]) | ([ Dayjs, Dayjs] & [ EventValue<string>, EventValue<string>]) | undefined;
                readonly disabledDate?: ((date: Dayjs) => boolean) | undefined;
                readonly showWeek?: boolean | undefined;
                readonly dateRender?: RangeDateRender<Dayjs> | undefined;
                readonly monthCellRender?: MonthCellRender<Dayjs> | undefined;
                readonly inputReadOnly?: boolean | undefined;
                readonly panelRender?: (((originPanel: VueNode) => VueNode) & ((originPanel: VueNode) => VueNode)) | undefined;
                readonly inputRender?: ((props: HTMLAttributes) => VueNode) | undefined;
                readonly disabledTime?: ((date: EventValue<Dayjs>, type: RangeType) => DisabledTimes) | undefined;
                readonly ranges?: Record<string, [ EventValue<Dayjs>, EventValue<Dayjs>] | (() => [ EventValue<Dayjs>, EventValue<Dayjs>])> | undefined;
                readonly allowEmpty?: [boolean, boolean] | undefined;
                readonly onCalendarChange?: ((values: RangeValue<Dayjs>, formatString: [string, string], info: RangeInfo) => void) | undefined;
                readonly activePickerIndex?: 0 | 1 | undefined;
                readonly valueFormat?: string | undefined;
                readonly value?: ( RangeValue<number> | null) | undefined;
                readonly defaultValue?: RangeValue<number> | undefined;
                readonly 'onUpdate:value'?: (((ts: RangeValue<number> | null) => void) & ((...args: any[]) => any)) | undefined;
                readonly onChange?: ((ts: RangeValue<number> | null, dayStr: [string, string]) => void) | undefined;
                readonly onOk?: ((ts: RangeValue<number>) => void) | undefined;
                readonly format?: LiteralUnion<ApFormatPresetType, string> | undefined;
                readonly shownFormat?: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[] | undefined;
                readonly timezone?: ( ZoneAlias | {
                    label?: string;
                    value: ZoneAlias;
                }[]) | undefined;
                readonly readModeSeparator?: any;
                readonly presets?: true | PresetDate<RangeValue<Dayjs>>[] | {
                    thisWeek?: boolean;
                    lastWeek?: boolean;
                    last7Days?: boolean;
                    last30Days?: boolean;
                    last90Days?: boolean;
                    thisMonth?: boolean;
                    lastMonth?: boolean;
                    thisQuarter?: boolean;
                    lastQuarter?: boolean;
                    thisYear?: boolean;
                    lastYear?: boolean;
                } | undefined;
            } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
            $attrs: Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                rangePickerRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
                    allowEmpty: {
                        type: PropType<[boolean, boolean]>;
                        default: [boolean, boolean];
                    };
                    dateRender: {
                        type: PropType<RangeDateRender<Dayjs>>;
                        default: RangeDateRender<Dayjs>;
                    };
                    defaultPickerValue: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    defaultValue: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    value: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    presets: {
                        type: PropType< PresetDate< Dayjs[]>[]>;
                        default: PresetDate< Dayjs[]>[];
                    };
                    disabledTime: {
                        type: PropType<(date: Dayjs, type: RangeType) => DisabledTimes>;
                        default: (date: Dayjs, type: RangeType) => DisabledTimes;
                    };
                    disabled: {
                        type: PropType<boolean | [boolean, boolean]>;
                        default: boolean | [boolean, boolean];
                    };
                    renderExtraFooter: {
                        type: PropType<() => VueNode>;
                        default: () => VueNode;
                    };
                    separator: {
                        type: StringConstructor;
                    };
                    showTime: {
                        type: PropType<boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                            defaultValue?: Dayjs[];
                        })>;
                        default: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                            defaultValue?: Dayjs[];
                        });
                    };
                    ranges: {
                        type: PropType<Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>>;
                        default: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                    };
                    placeholder: {
                        type: PropType<string[]>;
                        default: string[];
                    };
                    mode: {
                        type: PropType<[ PanelMode, PanelMode]>;
                        default: [ PanelMode, PanelMode];
                    };
                    onChange: {
                        type: PropType<(value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void>;
                        default: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                    };
                    'onUpdate:value': {
                        type: PropType<(value: [ Dayjs, Dayjs] | [string, string]) => void>;
                        default: (value: [ Dayjs, Dayjs] | [string, string]) => void;
                    };
                    onCalendarChange: {
                        type: PropType<(values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void>;
                        default: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                    };
                    onPanelChange: {
                        type: PropType<(values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void>;
                        default: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                    };
                    onOk: {
                        type: PropType<(dates: [ Dayjs, Dayjs] | [string, string]) => void>;
                        default: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                    };
                    id: StringConstructor;
                    dropdownClassName: StringConstructor;
                    popupClassName: StringConstructor;
                    popupStyle: {
                        type: PropType<CSSProperties>;
                        default: CSSProperties;
                    };
                    transitionName: StringConstructor;
                    allowClear: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    autofocus: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    tabindex: NumberConstructor;
                    open: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    defaultOpen: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    inputReadOnly: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    format: {
                        type: PropType<string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[]>;
                        default: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                    };
                    getPopupContainer: {
                        type: PropType<(node: HTMLElement) => HTMLElement>;
                        default: (node: HTMLElement) => HTMLElement;
                    };
                    panelRender: {
                        type: PropType<(originPanel: VueNode) => VueNode>;
                        default: (originPanel: VueNode) => VueNode;
                    };
                    onOpenChange: {
                        type: PropType<(open: boolean) => void>;
                        default: (open: boolean) => void;
                    };
                    'onUpdate:open': {
                        type: PropType<(open: boolean) => void>;
                        default: (open: boolean) => void;
                    };
                    onFocus: {
                        type: PropType<FocusEventHandler>;
                        default: FocusEventHandler;
                    };
                    onBlur: {
                        type: PropType<FocusEventHandler>;
                        default: FocusEventHandler;
                    };
                    onMousedown: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseup: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseenter: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseleave: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onClick: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onContextmenu: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onKeydown: {
                        type: PropType<(event: KeyboardEvent, preventDefault: () => void) => void>;
                        default: (event: KeyboardEvent, preventDefault: () => void) => void;
                    };
                    role: StringConstructor;
                    name: StringConstructor;
                    autocomplete: StringConstructor;
                    direction: {
                        type: PropType<"rtl" | "ltr">;
                        default: "rtl" | "ltr";
                    };
                    showToday: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    locale: {
                        type: PropType<PickerLocale>;
                        default: PickerLocale;
                    };
                    size: {
                        type: PropType<SizeType>;
                        default: SizeType;
                    };
                    bordered: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    variant: {
                        type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                        default: "filled" | "outlined" | "borderless" | "underlined";
                    };
                    disabledDate: {
                        type: PropType<(date: Dayjs) => boolean>;
                        default: (date: Dayjs) => boolean;
                    };
                    picker: {
                        type: PropType<PickerMode>;
                        default: PickerMode;
                    };
                    valueFormat: StringConstructor;
                    placement: {
                        type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                        default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                    };
                    status: {
                        type: PropType<"" | "error" | "warning">;
                        default: "" | "error" | "warning";
                    };
                    disabledHours: {
                        type: PropType<() => number[]>;
                        default: () => number[];
                    };
                    disabledMinutes: {
                        type: PropType<(hour: number) => number[]>;
                        default: (hour: number) => number[];
                    };
                    disabledSeconds: {
                        type: PropType<(hour: number, minute: number) => number[]>;
                        default: (hour: number, minute: number) => number[];
                    };
                }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
                    size: SizeType;
                    value: [ Dayjs, Dayjs] | [string, string];
                    mode: [ PanelMode, PanelMode];
                    onMouseenter: MouseEventHandler;
                    onMouseleave: MouseEventHandler;
                    onClick: MouseEventHandler;
                    onFocus: FocusEventHandler;
                    onBlur: FocusEventHandler;
                    onChange: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                    onKeydown: (event: KeyboardEvent, preventDefault: () => void) => void;
                    onContextmenu: MouseEventHandler;
                    onMousedown: MouseEventHandler;
                    onMouseup: MouseEventHandler;
                    open: boolean;
                    direction: "rtl" | "ltr";
                    disabled: boolean | [boolean, boolean];
                    disabledDate: (date: Dayjs) => boolean;
                    picker: PickerMode;
                    onPanelChange: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                    locale: PickerLocale;
                    format: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                    disabledHours: () => number[];
                    disabledMinutes: (hour: number) => number[];
                    disabledSeconds: (hour: number, minute: number) => number[];
                    disabledTime: (date: Dayjs, type: RangeType) => DisabledTimes;
                    autofocus: boolean;
                    getPopupContainer: (node: HTMLElement) => HTMLElement;
                    variant: "filled" | "outlined" | "borderless" | "underlined";
                    placeholder: string[];
                    bordered: boolean;
                    'onUpdate:value': (value: [ Dayjs, Dayjs] | [string, string]) => void;
                    status: "" | "error" | "warning";
                    defaultValue: [ Dayjs, Dayjs] | [string, string];
                    allowClear: boolean;
                    defaultOpen: boolean;
                    placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                    popupStyle: CSSProperties;
                    onOpenChange: (open: boolean) => void;
                    'onUpdate:open': (open: boolean) => void;
                    defaultPickerValue: [ Dayjs, Dayjs] | [string, string];
                    dateRender: RangeDateRender<Dayjs>;
                    renderExtraFooter: () => VueNode;
                    onOk: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                    inputReadOnly: boolean;
                    presets: PresetDate< Dayjs[]>[];
                    panelRender: (originPanel: VueNode) => VueNode;
                    showToday: boolean;
                    showTime: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    });
                    ranges: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                    allowEmpty: [boolean, boolean];
                    onCalendarChange: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                }, true, {}, CustomSlotsType<{
                    suffixIcon?: any;
                    prevIcon?: any;
                    nextIcon?: any;
                    superPrevIcon?: any;
                    superNextIcon?: any;
                    dateRender?: any;
                    renderExtraFooter?: any;
                    default?: any;
                    separator?: any;
                    clearIcon?: any;
                }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
                    P: {};
                    B: {};
                    D: {};
                    C: {};
                    M: {};
                    Defaults: {};
                }, Readonly< ExtractPropTypes<{
                    allowEmpty: {
                        type: PropType<[boolean, boolean]>;
                        default: [boolean, boolean];
                    };
                    dateRender: {
                        type: PropType<RangeDateRender<Dayjs>>;
                        default: RangeDateRender<Dayjs>;
                    };
                    defaultPickerValue: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    defaultValue: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    value: {
                        type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                        default: [ Dayjs, Dayjs] | [string, string];
                    };
                    presets: {
                        type: PropType< PresetDate< Dayjs[]>[]>;
                        default: PresetDate< Dayjs[]>[];
                    };
                    disabledTime: {
                        type: PropType<(date: Dayjs, type: RangeType) => DisabledTimes>;
                        default: (date: Dayjs, type: RangeType) => DisabledTimes;
                    };
                    disabled: {
                        type: PropType<boolean | [boolean, boolean]>;
                        default: boolean | [boolean, boolean];
                    };
                    renderExtraFooter: {
                        type: PropType<() => VueNode>;
                        default: () => VueNode;
                    };
                    separator: {
                        type: StringConstructor;
                    };
                    showTime: {
                        type: PropType<boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                            defaultValue?: Dayjs[];
                        })>;
                        default: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                            defaultValue?: Dayjs[];
                        });
                    };
                    ranges: {
                        type: PropType<Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>>;
                        default: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                    };
                    placeholder: {
                        type: PropType<string[]>;
                        default: string[];
                    };
                    mode: {
                        type: PropType<[ PanelMode, PanelMode]>;
                        default: [ PanelMode, PanelMode];
                    };
                    onChange: {
                        type: PropType<(value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void>;
                        default: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                    };
                    'onUpdate:value': {
                        type: PropType<(value: [ Dayjs, Dayjs] | [string, string]) => void>;
                        default: (value: [ Dayjs, Dayjs] | [string, string]) => void;
                    };
                    onCalendarChange: {
                        type: PropType<(values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void>;
                        default: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                    };
                    onPanelChange: {
                        type: PropType<(values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void>;
                        default: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                    };
                    onOk: {
                        type: PropType<(dates: [ Dayjs, Dayjs] | [string, string]) => void>;
                        default: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                    };
                    id: StringConstructor;
                    dropdownClassName: StringConstructor;
                    popupClassName: StringConstructor;
                    popupStyle: {
                        type: PropType<CSSProperties>;
                        default: CSSProperties;
                    };
                    transitionName: StringConstructor;
                    allowClear: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    autofocus: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    tabindex: NumberConstructor;
                    open: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    defaultOpen: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    inputReadOnly: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    format: {
                        type: PropType<string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[]>;
                        default: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                    };
                    getPopupContainer: {
                        type: PropType<(node: HTMLElement) => HTMLElement>;
                        default: (node: HTMLElement) => HTMLElement;
                    };
                    panelRender: {
                        type: PropType<(originPanel: VueNode) => VueNode>;
                        default: (originPanel: VueNode) => VueNode;
                    };
                    onOpenChange: {
                        type: PropType<(open: boolean) => void>;
                        default: (open: boolean) => void;
                    };
                    'onUpdate:open': {
                        type: PropType<(open: boolean) => void>;
                        default: (open: boolean) => void;
                    };
                    onFocus: {
                        type: PropType<FocusEventHandler>;
                        default: FocusEventHandler;
                    };
                    onBlur: {
                        type: PropType<FocusEventHandler>;
                        default: FocusEventHandler;
                    };
                    onMousedown: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseup: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseenter: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onMouseleave: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onClick: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onContextmenu: {
                        type: PropType<MouseEventHandler>;
                        default: MouseEventHandler;
                    };
                    onKeydown: {
                        type: PropType<(event: KeyboardEvent, preventDefault: () => void) => void>;
                        default: (event: KeyboardEvent, preventDefault: () => void) => void;
                    };
                    role: StringConstructor;
                    name: StringConstructor;
                    autocomplete: StringConstructor;
                    direction: {
                        type: PropType<"rtl" | "ltr">;
                        default: "rtl" | "ltr";
                    };
                    showToday: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    locale: {
                        type: PropType<PickerLocale>;
                        default: PickerLocale;
                    };
                    size: {
                        type: PropType<SizeType>;
                        default: SizeType;
                    };
                    bordered: {
                        type: BooleanConstructor;
                        default: boolean;
                    };
                    variant: {
                        type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                        default: "filled" | "outlined" | "borderless" | "underlined";
                    };
                    disabledDate: {
                        type: PropType<(date: Dayjs) => boolean>;
                        default: (date: Dayjs) => boolean;
                    };
                    picker: {
                        type: PropType<PickerMode>;
                        default: PickerMode;
                    };
                    valueFormat: StringConstructor;
                    placement: {
                        type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                        default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                    };
                    status: {
                        type: PropType<"" | "error" | "warning">;
                        default: "" | "error" | "warning";
                    };
                    disabledHours: {
                        type: PropType<() => number[]>;
                        default: () => number[];
                    };
                    disabledMinutes: {
                        type: PropType<(hour: number) => number[]>;
                        default: (hour: number) => number[];
                    };
                    disabledSeconds: {
                        type: PropType<(hour: number, minute: number) => number[]>;
                        default: (hour: number, minute: number) => number[];
                    };
                }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
                    size: SizeType;
                    value: [ Dayjs, Dayjs] | [string, string];
                    mode: [ PanelMode, PanelMode];
                    onMouseenter: MouseEventHandler;
                    onMouseleave: MouseEventHandler;
                    onClick: MouseEventHandler;
                    onFocus: FocusEventHandler;
                    onBlur: FocusEventHandler;
                    onChange: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                    onKeydown: (event: KeyboardEvent, preventDefault: () => void) => void;
                    onContextmenu: MouseEventHandler;
                    onMousedown: MouseEventHandler;
                    onMouseup: MouseEventHandler;
                    open: boolean;
                    direction: "rtl" | "ltr";
                    disabled: boolean | [boolean, boolean];
                    disabledDate: (date: Dayjs) => boolean;
                    picker: PickerMode;
                    onPanelChange: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                    locale: PickerLocale;
                    format: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                    disabledHours: () => number[];
                    disabledMinutes: (hour: number) => number[];
                    disabledSeconds: (hour: number, minute: number) => number[];
                    disabledTime: (date: Dayjs, type: RangeType) => DisabledTimes;
                    autofocus: boolean;
                    getPopupContainer: (node: HTMLElement) => HTMLElement;
                    variant: "filled" | "outlined" | "borderless" | "underlined";
                    placeholder: string[];
                    bordered: boolean;
                    'onUpdate:value': (value: [ Dayjs, Dayjs] | [string, string]) => void;
                    status: "" | "error" | "warning";
                    defaultValue: [ Dayjs, Dayjs] | [string, string];
                    allowClear: boolean;
                    defaultOpen: boolean;
                    placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                    popupStyle: CSSProperties;
                    onOpenChange: (open: boolean) => void;
                    'onUpdate:open': (open: boolean) => void;
                    defaultPickerValue: [ Dayjs, Dayjs] | [string, string];
                    dateRender: RangeDateRender<Dayjs>;
                    renderExtraFooter: () => VueNode;
                    onOk: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                    inputReadOnly: boolean;
                    presets: PresetDate< Dayjs[]>[];
                    panelRender: (originPanel: VueNode) => VueNode;
                    showToday: boolean;
                    showTime: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    });
                    ranges: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                    allowEmpty: [boolean, boolean];
                    onCalendarChange: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                }> | null;
            };
            $slots: Readonly<{
                [name: string]: Slot<any> | undefined;
            }>;
            $root: ComponentPublicInstance | null;
            $parent: ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "update:value", ...args: any[]) => void;
            $el: any;
            $options: ComponentOptionsBase<Readonly< ApFieldDateRangeProps> & Readonly<{
                "onUpdate:value"?: ((...args: any[]) => any) | undefined;
            }>, {
                blur: () => void;
                focus: () => void;
            }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
                "update:value": (...args: any[]) => void;
            }, string, {
                mode: FieldMode;
                open: boolean;
                separator: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null;
                disabled: boolean | [boolean, boolean];
                autofocus: boolean;
                bordered: boolean;
                clearIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null;
                allowClear: boolean;
                suffixIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | null;
                defaultOpen: boolean;
                emptyText: string;
                inputReadOnly: boolean;
                format: LiteralUnion<ApFormatPresetType, string>;
            }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
        } & Readonly<{
            mode: FieldMode;
            open: boolean;
            separator: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            disabled: boolean | [boolean, boolean];
            autofocus: boolean;
            bordered: boolean;
            clearIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            allowClear: boolean;
            suffixIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            defaultOpen: boolean;
            emptyText: string;
            inputReadOnly: boolean;
            format: LiteralUnion<ApFormatPresetType, string>;
        }> & Omit<Readonly< ApFieldDateRangeProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, "blur" | "focus" | ("mode" | "open" | "separator" | "disabled" | "autofocus" | "bordered" | "clearIcon" | "allowClear" | "suffixIcon" | "defaultOpen" | "emptyText" | "inputReadOnly" | "format")> & {
            blur: () => void;
            focus: () => void;
        } & {} & ComponentCustomProperties & {} & {
            $slots: Readonly<{
                suffixIcon?: any;
                prevIcon?: any;
                nextIcon?: any;
                superPrevIcon?: any;
                superNextIcon?: any;
                dateRender?: any;
                renderExtraFooter?: any;
                default?: any;
                separator?: any;
                readModeSeparator?: any;
                clearIcon?: any;
            }> & {
                suffixIcon?: any;
                prevIcon?: any;
                nextIcon?: any;
                superPrevIcon?: any;
                superNextIcon?: any;
                dateRender?: any;
                renderExtraFooter?: any;
                default?: any;
                separator?: any;
                readModeSeparator?: any;
                clearIcon?: any;
            };
        }) | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFormItemDateRangeProps, {
    focus: () => void | undefined;
    blur: () => void | undefined;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ApFormItemDateRangeProps> & Readonly<{}>, {
    disabled: boolean;
    required: boolean;
    colon: boolean;
    hasFeedback: boolean;
    autoLink: boolean;
    validateFirst: boolean;
    field: Omit< ApFieldDateRangeProps, "value" | "onUpdate:value">;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    dateRangeRef: ({
        $: ComponentInternalInstance;
        $data: {};
        $props: {
            readonly mode?: FieldMode | undefined;
            readonly class?: unknown;
            readonly style?: unknown;
            readonly emptyText?: string | undefined;
            readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
            readonly size?: ButtonSize;
            readonly onBlur?: FocusEventHandler | undefined;
            readonly onClick?: MouseEventHandler | undefined;
            readonly onContextmenu?: MouseEventHandler | undefined;
            readonly onFocus?: FocusEventHandler | undefined;
            readonly onKeydown?: ((event: KeyboardEvent, preventDefault: () => void) => void) | undefined;
            readonly onMousedown?: ( MouseEventHandler & ((e: MouseEvent) => void)) | undefined;
            readonly onMouseenter?: MouseEventHandler | undefined;
            readonly onMouseleave?: MouseEventHandler | undefined;
            readonly onMouseup?: MouseEventHandler | undefined;
            readonly open?: boolean | undefined;
            readonly separator?: VueNode;
            readonly disabled?: boolean | [boolean, boolean] | undefined;
            readonly direction?: "ltr" | "rtl" | undefined;
            readonly placeholder?: [string, string] | undefined;
            readonly id?: string | undefined;
            readonly getPopupContainer?: ((node: HTMLElement) => HTMLElement) | undefined;
            readonly prefixCls?: string | undefined;
            readonly locale?: PickerLocale | undefined;
            readonly variant?: Variant | undefined;
            readonly name?: string | undefined;
            readonly autofocus?: boolean | undefined;
            readonly autocomplete?: string | undefined;
            readonly bordered?: boolean | undefined;
            readonly clearIcon?: VueNode;
            readonly allowClear?: boolean | undefined;
            readonly suffixIcon?: VueNode;
            readonly transitionName?: string | undefined;
            readonly dropdownClassName?: string | undefined;
            readonly tabindex?: number | undefined;
            readonly defaultOpen?: boolean | undefined;
            readonly dropdownAlign?: AlignType | undefined;
            readonly onOpenChange?: ((open: boolean) => void) | undefined;
            readonly role?: string | undefined;
            readonly popupStyle?: CSSProperties | undefined;
            readonly picker?: "time" | "month" | "year" | "date" | "week" | "quarter" | undefined;
            readonly defaultPickerValue?: ([ Dayjs, Dayjs] & [ EventValue<Dayjs>, EventValue<Dayjs>]) | ([ Dayjs, Dayjs] & [ EventValue<string>, EventValue<string>]) | undefined;
            readonly disabledDate?: ((date: Dayjs) => boolean) | undefined;
            readonly showWeek?: boolean | undefined;
            readonly dateRender?: RangeDateRender<Dayjs> | undefined;
            readonly monthCellRender?: MonthCellRender<Dayjs> | undefined;
            readonly inputReadOnly?: boolean | undefined;
            readonly panelRender?: (((originPanel: VueNode) => VueNode) & ((originPanel: VueNode) => VueNode)) | undefined;
            readonly inputRender?: ((props: HTMLAttributes) => VueNode) | undefined;
            readonly disabledTime?: ((date: EventValue<Dayjs>, type: RangeType) => DisabledTimes) | undefined;
            readonly ranges?: Record<string, [ EventValue<Dayjs>, EventValue<Dayjs>] | (() => [ EventValue<Dayjs>, EventValue<Dayjs>])> | undefined;
            readonly allowEmpty?: [boolean, boolean] | undefined;
            readonly onCalendarChange?: ((values: RangeValue<Dayjs>, formatString: [string, string], info: RangeInfo) => void) | undefined;
            readonly activePickerIndex?: 0 | 1 | undefined;
            readonly valueFormat?: string | undefined;
            readonly value?: ( RangeValue<number> | null) | undefined;
            readonly defaultValue?: RangeValue<number> | undefined;
            readonly 'onUpdate:value'?: (((ts: RangeValue<number> | null) => void) & ((...args: any[]) => any)) | undefined;
            readonly onChange?: ((ts: RangeValue<number> | null, dayStr: [string, string]) => void) | undefined;
            readonly onOk?: ((ts: RangeValue<number>) => void) | undefined;
            readonly format?: LiteralUnion<ApFormatPresetType, string> | undefined;
            readonly shownFormat?: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[] | undefined;
            readonly timezone?: ( ZoneAlias | {
                label?: string;
                value: ZoneAlias;
            }[]) | undefined;
            readonly readModeSeparator?: any;
            readonly presets?: true | PresetDate<RangeValue<Dayjs>>[] | {
                thisWeek?: boolean;
                lastWeek?: boolean;
                last7Days?: boolean;
                last30Days?: boolean;
                last90Days?: boolean;
                thisMonth?: boolean;
                lastMonth?: boolean;
                thisQuarter?: boolean;
                lastQuarter?: boolean;
                thisYear?: boolean;
                lastYear?: boolean;
            } | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        $attrs: Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            rangePickerRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
                allowEmpty: {
                    type: PropType<[boolean, boolean]>;
                    default: [boolean, boolean];
                };
                dateRender: {
                    type: PropType<RangeDateRender<Dayjs>>;
                    default: RangeDateRender<Dayjs>;
                };
                defaultPickerValue: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                defaultValue: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                value: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                presets: {
                    type: PropType< PresetDate< Dayjs[]>[]>;
                    default: PresetDate< Dayjs[]>[];
                };
                disabledTime: {
                    type: PropType<(date: Dayjs, type: RangeType) => DisabledTimes>;
                    default: (date: Dayjs, type: RangeType) => DisabledTimes;
                };
                disabled: {
                    type: PropType<boolean | [boolean, boolean]>;
                    default: boolean | [boolean, boolean];
                };
                renderExtraFooter: {
                    type: PropType<() => VueNode>;
                    default: () => VueNode;
                };
                separator: {
                    type: StringConstructor;
                };
                showTime: {
                    type: PropType<boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    })>;
                    default: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    });
                };
                ranges: {
                    type: PropType<Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>>;
                    default: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                };
                placeholder: {
                    type: PropType<string[]>;
                    default: string[];
                };
                mode: {
                    type: PropType<[ PanelMode, PanelMode]>;
                    default: [ PanelMode, PanelMode];
                };
                onChange: {
                    type: PropType<(value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void>;
                    default: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                };
                'onUpdate:value': {
                    type: PropType<(value: [ Dayjs, Dayjs] | [string, string]) => void>;
                    default: (value: [ Dayjs, Dayjs] | [string, string]) => void;
                };
                onCalendarChange: {
                    type: PropType<(values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void>;
                    default: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                };
                onPanelChange: {
                    type: PropType<(values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void>;
                    default: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                };
                onOk: {
                    type: PropType<(dates: [ Dayjs, Dayjs] | [string, string]) => void>;
                    default: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                };
                id: StringConstructor;
                dropdownClassName: StringConstructor;
                popupClassName: StringConstructor;
                popupStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                transitionName: StringConstructor;
                allowClear: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                autofocus: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                tabindex: NumberConstructor;
                open: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                defaultOpen: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                inputReadOnly: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                format: {
                    type: PropType<string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[]>;
                    default: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                };
                getPopupContainer: {
                    type: PropType<(node: HTMLElement) => HTMLElement>;
                    default: (node: HTMLElement) => HTMLElement;
                };
                panelRender: {
                    type: PropType<(originPanel: VueNode) => VueNode>;
                    default: (originPanel: VueNode) => VueNode;
                };
                onOpenChange: {
                    type: PropType<(open: boolean) => void>;
                    default: (open: boolean) => void;
                };
                'onUpdate:open': {
                    type: PropType<(open: boolean) => void>;
                    default: (open: boolean) => void;
                };
                onFocus: {
                    type: PropType<FocusEventHandler>;
                    default: FocusEventHandler;
                };
                onBlur: {
                    type: PropType<FocusEventHandler>;
                    default: FocusEventHandler;
                };
                onMousedown: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseup: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseenter: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseleave: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onClick: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onContextmenu: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onKeydown: {
                    type: PropType<(event: KeyboardEvent, preventDefault: () => void) => void>;
                    default: (event: KeyboardEvent, preventDefault: () => void) => void;
                };
                role: StringConstructor;
                name: StringConstructor;
                autocomplete: StringConstructor;
                direction: {
                    type: PropType<"rtl" | "ltr">;
                    default: "rtl" | "ltr";
                };
                showToday: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                locale: {
                    type: PropType<PickerLocale>;
                    default: PickerLocale;
                };
                size: {
                    type: PropType<SizeType>;
                    default: SizeType;
                };
                bordered: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                variant: {
                    type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                    default: "filled" | "outlined" | "borderless" | "underlined";
                };
                disabledDate: {
                    type: PropType<(date: Dayjs) => boolean>;
                    default: (date: Dayjs) => boolean;
                };
                picker: {
                    type: PropType<PickerMode>;
                    default: PickerMode;
                };
                valueFormat: StringConstructor;
                placement: {
                    type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                    default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                };
                status: {
                    type: PropType<"" | "error" | "warning">;
                    default: "" | "error" | "warning";
                };
                disabledHours: {
                    type: PropType<() => number[]>;
                    default: () => number[];
                };
                disabledMinutes: {
                    type: PropType<(hour: number) => number[]>;
                    default: (hour: number) => number[];
                };
                disabledSeconds: {
                    type: PropType<(hour: number, minute: number) => number[]>;
                    default: (hour: number, minute: number) => number[];
                };
            }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
                size: SizeType;
                value: [ Dayjs, Dayjs] | [string, string];
                mode: [ PanelMode, PanelMode];
                onMouseenter: MouseEventHandler;
                onMouseleave: MouseEventHandler;
                onClick: MouseEventHandler;
                onFocus: FocusEventHandler;
                onBlur: FocusEventHandler;
                onChange: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                onKeydown: (event: KeyboardEvent, preventDefault: () => void) => void;
                onContextmenu: MouseEventHandler;
                onMousedown: MouseEventHandler;
                onMouseup: MouseEventHandler;
                open: boolean;
                direction: "rtl" | "ltr";
                disabled: boolean | [boolean, boolean];
                disabledDate: (date: Dayjs) => boolean;
                picker: PickerMode;
                onPanelChange: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                locale: PickerLocale;
                format: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                disabledHours: () => number[];
                disabledMinutes: (hour: number) => number[];
                disabledSeconds: (hour: number, minute: number) => number[];
                disabledTime: (date: Dayjs, type: RangeType) => DisabledTimes;
                autofocus: boolean;
                getPopupContainer: (node: HTMLElement) => HTMLElement;
                variant: "filled" | "outlined" | "borderless" | "underlined";
                placeholder: string[];
                bordered: boolean;
                'onUpdate:value': (value: [ Dayjs, Dayjs] | [string, string]) => void;
                status: "" | "error" | "warning";
                defaultValue: [ Dayjs, Dayjs] | [string, string];
                allowClear: boolean;
                defaultOpen: boolean;
                placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                popupStyle: CSSProperties;
                onOpenChange: (open: boolean) => void;
                'onUpdate:open': (open: boolean) => void;
                defaultPickerValue: [ Dayjs, Dayjs] | [string, string];
                dateRender: RangeDateRender<Dayjs>;
                renderExtraFooter: () => VueNode;
                onOk: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                inputReadOnly: boolean;
                presets: PresetDate< Dayjs[]>[];
                panelRender: (originPanel: VueNode) => VueNode;
                showToday: boolean;
                showTime: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                    defaultValue?: Dayjs[];
                });
                ranges: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                allowEmpty: [boolean, boolean];
                onCalendarChange: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
            }, true, {}, CustomSlotsType<{
                suffixIcon?: any;
                prevIcon?: any;
                nextIcon?: any;
                superPrevIcon?: any;
                superNextIcon?: any;
                dateRender?: any;
                renderExtraFooter?: any;
                default?: any;
                separator?: any;
                clearIcon?: any;
            }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
                P: {};
                B: {};
                D: {};
                C: {};
                M: {};
                Defaults: {};
            }, Readonly< ExtractPropTypes<{
                allowEmpty: {
                    type: PropType<[boolean, boolean]>;
                    default: [boolean, boolean];
                };
                dateRender: {
                    type: PropType<RangeDateRender<Dayjs>>;
                    default: RangeDateRender<Dayjs>;
                };
                defaultPickerValue: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                defaultValue: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                value: {
                    type: PropType<[ Dayjs, Dayjs] | [string, string]>;
                    default: [ Dayjs, Dayjs] | [string, string];
                };
                presets: {
                    type: PropType< PresetDate< Dayjs[]>[]>;
                    default: PresetDate< Dayjs[]>[];
                };
                disabledTime: {
                    type: PropType<(date: Dayjs, type: RangeType) => DisabledTimes>;
                    default: (date: Dayjs, type: RangeType) => DisabledTimes;
                };
                disabled: {
                    type: PropType<boolean | [boolean, boolean]>;
                    default: boolean | [boolean, boolean];
                };
                renderExtraFooter: {
                    type: PropType<() => VueNode>;
                    default: () => VueNode;
                };
                separator: {
                    type: StringConstructor;
                };
                showTime: {
                    type: PropType<boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    })>;
                    default: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                        defaultValue?: Dayjs[];
                    });
                };
                ranges: {
                    type: PropType<Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>>;
                    default: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                };
                placeholder: {
                    type: PropType<string[]>;
                    default: string[];
                };
                mode: {
                    type: PropType<[ PanelMode, PanelMode]>;
                    default: [ PanelMode, PanelMode];
                };
                onChange: {
                    type: PropType<(value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void>;
                    default: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                };
                'onUpdate:value': {
                    type: PropType<(value: [ Dayjs, Dayjs] | [string, string]) => void>;
                    default: (value: [ Dayjs, Dayjs] | [string, string]) => void;
                };
                onCalendarChange: {
                    type: PropType<(values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void>;
                    default: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
                };
                onPanelChange: {
                    type: PropType<(values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void>;
                    default: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                };
                onOk: {
                    type: PropType<(dates: [ Dayjs, Dayjs] | [string, string]) => void>;
                    default: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                };
                id: StringConstructor;
                dropdownClassName: StringConstructor;
                popupClassName: StringConstructor;
                popupStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                transitionName: StringConstructor;
                allowClear: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                autofocus: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                tabindex: NumberConstructor;
                open: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                defaultOpen: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                inputReadOnly: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                format: {
                    type: PropType<string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[]>;
                    default: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                };
                getPopupContainer: {
                    type: PropType<(node: HTMLElement) => HTMLElement>;
                    default: (node: HTMLElement) => HTMLElement;
                };
                panelRender: {
                    type: PropType<(originPanel: VueNode) => VueNode>;
                    default: (originPanel: VueNode) => VueNode;
                };
                onOpenChange: {
                    type: PropType<(open: boolean) => void>;
                    default: (open: boolean) => void;
                };
                'onUpdate:open': {
                    type: PropType<(open: boolean) => void>;
                    default: (open: boolean) => void;
                };
                onFocus: {
                    type: PropType<FocusEventHandler>;
                    default: FocusEventHandler;
                };
                onBlur: {
                    type: PropType<FocusEventHandler>;
                    default: FocusEventHandler;
                };
                onMousedown: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseup: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseenter: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onMouseleave: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onClick: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onContextmenu: {
                    type: PropType<MouseEventHandler>;
                    default: MouseEventHandler;
                };
                onKeydown: {
                    type: PropType<(event: KeyboardEvent, preventDefault: () => void) => void>;
                    default: (event: KeyboardEvent, preventDefault: () => void) => void;
                };
                role: StringConstructor;
                name: StringConstructor;
                autocomplete: StringConstructor;
                direction: {
                    type: PropType<"rtl" | "ltr">;
                    default: "rtl" | "ltr";
                };
                showToday: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                locale: {
                    type: PropType<PickerLocale>;
                    default: PickerLocale;
                };
                size: {
                    type: PropType<SizeType>;
                    default: SizeType;
                };
                bordered: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                variant: {
                    type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                    default: "filled" | "outlined" | "borderless" | "underlined";
                };
                disabledDate: {
                    type: PropType<(date: Dayjs) => boolean>;
                    default: (date: Dayjs) => boolean;
                };
                picker: {
                    type: PropType<PickerMode>;
                    default: PickerMode;
                };
                valueFormat: StringConstructor;
                placement: {
                    type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                    default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                };
                status: {
                    type: PropType<"" | "error" | "warning">;
                    default: "" | "error" | "warning";
                };
                disabledHours: {
                    type: PropType<() => number[]>;
                    default: () => number[];
                };
                disabledMinutes: {
                    type: PropType<(hour: number) => number[]>;
                    default: (hour: number) => number[];
                };
                disabledSeconds: {
                    type: PropType<(hour: number, minute: number) => number[]>;
                    default: (hour: number, minute: number) => number[];
                };
            }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
                size: SizeType;
                value: [ Dayjs, Dayjs] | [string, string];
                mode: [ PanelMode, PanelMode];
                onMouseenter: MouseEventHandler;
                onMouseleave: MouseEventHandler;
                onClick: MouseEventHandler;
                onFocus: FocusEventHandler;
                onBlur: FocusEventHandler;
                onChange: (value: [ Dayjs, Dayjs] | [string, string], dateString: [string, string]) => void;
                onKeydown: (event: KeyboardEvent, preventDefault: () => void) => void;
                onContextmenu: MouseEventHandler;
                onMousedown: MouseEventHandler;
                onMouseup: MouseEventHandler;
                open: boolean;
                direction: "rtl" | "ltr";
                disabled: boolean | [boolean, boolean];
                disabledDate: (date: Dayjs) => boolean;
                picker: PickerMode;
                onPanelChange: (values: [ Dayjs, Dayjs] | [string, string], modes: [ PanelMode, PanelMode]) => void;
                locale: PickerLocale;
                format: string | CustomFormat<Dayjs> | (string | CustomFormat<Dayjs>)[];
                disabledHours: () => number[];
                disabledMinutes: (hour: number) => number[];
                disabledSeconds: (hour: number, minute: number) => number[];
                disabledTime: (date: Dayjs, type: RangeType) => DisabledTimes;
                autofocus: boolean;
                getPopupContainer: (node: HTMLElement) => HTMLElement;
                variant: "filled" | "outlined" | "borderless" | "underlined";
                placeholder: string[];
                bordered: boolean;
                'onUpdate:value': (value: [ Dayjs, Dayjs] | [string, string]) => void;
                status: "" | "error" | "warning";
                defaultValue: [ Dayjs, Dayjs] | [string, string];
                allowClear: boolean;
                defaultOpen: boolean;
                placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
                popupStyle: CSSProperties;
                onOpenChange: (open: boolean) => void;
                'onUpdate:open': (open: boolean) => void;
                defaultPickerValue: [ Dayjs, Dayjs] | [string, string];
                dateRender: RangeDateRender<Dayjs>;
                renderExtraFooter: () => VueNode;
                onOk: (dates: [ Dayjs, Dayjs] | [string, string]) => void;
                inputReadOnly: boolean;
                presets: PresetDate< Dayjs[]>[];
                panelRender: (originPanel: VueNode) => VueNode;
                showToday: boolean;
                showTime: boolean | (Omit< SharedTimeProps<Dayjs>, "defaultValue"> & {
                    defaultValue?: Dayjs[];
                });
                ranges: Record<string, [ Dayjs, Dayjs] | (() => [ Dayjs, Dayjs])>;
                allowEmpty: [boolean, boolean];
                onCalendarChange: (values: [ Dayjs, Dayjs] | [string, string], formatString: [string, string], info: RangeInfo) => void;
            }> | null;
        };
        $slots: Readonly<{
            [name: string]: Slot<any> | undefined;
        }>;
        $root: ComponentPublicInstance | null;
        $parent: ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "update:value", ...args: any[]) => void;
        $el: any;
        $options: ComponentOptionsBase<Readonly< ApFieldDateRangeProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, {
            blur: () => void;
            focus: () => void;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            "update:value": (...args: any[]) => void;
        }, string, {
            mode: FieldMode;
            open: boolean;
            separator: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            disabled: boolean | [boolean, boolean];
            autofocus: boolean;
            bordered: boolean;
            clearIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            allowClear: boolean;
            suffixIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | null;
            defaultOpen: boolean;
            emptyText: string;
            inputReadOnly: boolean;
            format: LiteralUnion<ApFormatPresetType, string>;
        }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
    } & Readonly<{
        mode: FieldMode;
        open: boolean;
        separator: string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null;
        disabled: boolean | [boolean, boolean];
        autofocus: boolean;
        bordered: boolean;
        clearIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null;
        allowClear: boolean;
        suffixIcon: string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | (string | number | boolean | void | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null | undefined)[] | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | null;
        defaultOpen: boolean;
        emptyText: string;
        inputReadOnly: boolean;
        format: LiteralUnion<ApFormatPresetType, string>;
    }> & Omit<Readonly< ApFieldDateRangeProps> & Readonly<{
        "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    }>, "blur" | "focus" | ("mode" | "open" | "separator" | "disabled" | "autofocus" | "bordered" | "clearIcon" | "allowClear" | "suffixIcon" | "defaultOpen" | "emptyText" | "inputReadOnly" | "format")> & {
        blur: () => void;
        focus: () => void;
    } & {} & ComponentCustomProperties & {} & {
        $slots: Readonly<{
            suffixIcon?: any;
            prevIcon?: any;
            nextIcon?: any;
            superPrevIcon?: any;
            superNextIcon?: any;
            dateRender?: any;
            renderExtraFooter?: any;
            default?: any;
            separator?: any;
            readModeSeparator?: any;
            clearIcon?: any;
        }> & {
            suffixIcon?: any;
            prevIcon?: any;
            nextIcon?: any;
            superPrevIcon?: any;
            superNextIcon?: any;
            dateRender?: any;
            renderExtraFooter?: any;
            default?: any;
            separator?: any;
            readModeSeparator?: any;
            clearIcon?: any;
        };
    }) | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
