import { Dayjs } from 'dayjs';
import { ApFormatPresetType } from '../date/interface';
import { ApFieldDateRangeProps } from '../interface';
import { CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, CSSProperties, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, DefineComponent, VNode, RendererNode, RendererElement } from 'vue';
import { RangeDateRender, RangeType, RangeInfo } from '@aplus-frontend/antdv/es/vc-picker/RangePicker';
import { PresetDate, DisabledTimes, PanelMode, CustomFormat, PickerMode } from '@aplus-frontend/antdv/es/vc-picker/interface';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { SharedTimeProps } from '@aplus-frontend/antdv/es/vc-picker/panels/TimePanel';
import { FocusEventHandler, MouseEventHandler } from '@aplus-frontend/antdv/es/_util/EventInterface';
import { PickerLocale } from '@aplus-frontend/antdv/es/date-picker/generatePicker';
import { SizeType } from '@aplus-frontend/antdv/es/button';
import { FieldMode } from '..';
import { LiteralUnion } from '../../type';
type ApFieldDateRangeSlots = {
    suffixIcon?: any;
    prevIcon?: any;
    nextIcon?: any;
    superPrevIcon?: any;
    superNextIcon?: any;
    dateRender?: any;
    renderExtraFooter?: any;
    default?: any;
    separator?: any;
    /**
     * 只读模式下的分隔符
     */
    readModeSeparator?: any;
    clearIcon?: any;
};
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<ApFieldDateRangeSlots> & ApFieldDateRangeSlots;
    refs: {
        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;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFieldDateRangeProps, {
    blur: () => void;
    focus: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, PublicProps, Readonly<ApFieldDateRangeProps> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {
    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, ComponentProvideOptions, false, {
    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;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
