import type { GenerateConfig } from '../../vc-picker/generate/index';
import type { PanelMode } from '../../vc-picker/interface';
export default function generateRangePicker<DateType, ExtraProps = {}>(generateConfig: GenerateConfig<DateType>, extraProps: ExtraProps): import("vue").DefineComponent<{
    allowEmpty: {
        type: import("vue").PropType<[boolean, boolean]>;
    };
    dateRender: {
        type: import("vue").PropType<any>;
    };
    defaultPickerValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    defaultValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    value: {
        type: import("vue").PropType<[DateType, DateType]>;
    };
    disabledTime: {
        type: import("vue").PropType<(date: DateType, type: any) => import("../../vc-picker/interface").DisabledTimes>;
    };
    disabled: {
        type: import("vue").PropType<boolean | [boolean, boolean]>;
    };
    format: StringConstructor;
    renderExtraFooter: {
        type: import("vue").PropType<() => import("../../_util/type").VueNode>;
    };
    separator: {
        type: StringConstructor;
    };
    ranges: {
        type: import("vue").PropType<Record<string, [DateType, DateType] | (() => [DateType, DateType])>>;
    };
    placeholder: ArrayConstructor;
    mode: {
        type: import("vue").PropType<[PanelMode, PanelMode]>;
    };
    id: StringConstructor;
    dropdownClassName: StringConstructor;
    dropdownAlign: {
        type: import("vue").PropType<import("../../vc-align/interface").AlignType>;
    };
    popupStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    transitionName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    tabindex: NumberConstructor;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    inputReadOnly: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<(node: HTMLElement) => HTMLElement>;
    };
    panelRender: {
        type: import("vue").PropType<(originPanel: import("../../_util/type").VueNode) => import("../../_util/type").VueNode>;
    };
    role: StringConstructor;
    name: StringConstructor;
    autocomplete: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    showToday: {
        type: BooleanConstructor;
        default: any;
    };
    showTime: {
        type: import("vue").PropType<any>;
        default: any;
    };
    locale: {
        type: import("vue").PropType<any>;
    };
    size: {
        type: import("vue").PropType<any>;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    disabledDate: {
        type: import("vue").PropType<(date: DateType) => boolean>;
    };
    picker: {
        type: import("vue").PropType<import("../../vc-picker/interface").PickerMode>;
    };
    valueFormat: StringConstructor;
} & ExtraProps, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("blur" | "change" | "focus" | "ok" | "panelChange" | "update:value" | "openChange" | "update:open" | "calendarChange")[], "blur" | "change" | "focus" | "ok" | "panelChange" | "update:value" | "openChange" | "update:open" | "calendarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    allowEmpty: {
        type: import("vue").PropType<[boolean, boolean]>;
    };
    dateRender: {
        type: import("vue").PropType<any>;
    };
    defaultPickerValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    defaultValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    value: {
        type: import("vue").PropType<[DateType, DateType]>;
    };
    disabledTime: {
        type: import("vue").PropType<(date: DateType, type: any) => import("../../vc-picker/interface").DisabledTimes>;
    };
    disabled: {
        type: import("vue").PropType<boolean | [boolean, boolean]>;
    };
    format: StringConstructor;
    renderExtraFooter: {
        type: import("vue").PropType<() => import("../../_util/type").VueNode>;
    };
    separator: {
        type: StringConstructor;
    };
    ranges: {
        type: import("vue").PropType<Record<string, [DateType, DateType] | (() => [DateType, DateType])>>;
    };
    placeholder: ArrayConstructor;
    mode: {
        type: import("vue").PropType<[PanelMode, PanelMode]>;
    };
    id: StringConstructor;
    dropdownClassName: StringConstructor;
    dropdownAlign: {
        type: import("vue").PropType<import("../../vc-align/interface").AlignType>;
    };
    popupStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    transitionName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    tabindex: NumberConstructor;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    inputReadOnly: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<(node: HTMLElement) => HTMLElement>;
    };
    panelRender: {
        type: import("vue").PropType<(originPanel: import("../../_util/type").VueNode) => import("../../_util/type").VueNode>;
    };
    role: StringConstructor;
    name: StringConstructor;
    autocomplete: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    showToday: {
        type: BooleanConstructor;
        default: any;
    };
    showTime: {
        type: import("vue").PropType<any>;
        default: any;
    };
    locale: {
        type: import("vue").PropType<any>;
    };
    size: {
        type: import("vue").PropType<any>;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    disabledDate: {
        type: import("vue").PropType<(date: DateType) => boolean>;
    };
    picker: {
        type: import("vue").PropType<import("../../vc-picker/interface").PickerMode>;
    };
    valueFormat: StringConstructor;
} & ExtraProps extends import("vue").ComponentPropsOptions<{
    [x: string]: unknown;
}> ? import("vue").ExtractPropTypes<{
    allowEmpty: {
        type: import("vue").PropType<[boolean, boolean]>;
    };
    dateRender: {
        type: import("vue").PropType<any>;
    };
    defaultPickerValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    defaultValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    value: {
        type: import("vue").PropType<[DateType, DateType]>;
    };
    disabledTime: {
        type: import("vue").PropType<(date: DateType, type: any) => import("../../vc-picker/interface").DisabledTimes>;
    };
    disabled: {
        type: import("vue").PropType<boolean | [boolean, boolean]>;
    };
    format: StringConstructor;
    renderExtraFooter: {
        type: import("vue").PropType<() => import("../../_util/type").VueNode>;
    };
    separator: {
        type: StringConstructor;
    };
    ranges: {
        type: import("vue").PropType<Record<string, [DateType, DateType] | (() => [DateType, DateType])>>;
    };
    placeholder: ArrayConstructor;
    mode: {
        type: import("vue").PropType<[PanelMode, PanelMode]>;
    };
    id: StringConstructor;
    dropdownClassName: StringConstructor;
    dropdownAlign: {
        type: import("vue").PropType<import("../../vc-align/interface").AlignType>;
    };
    popupStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    transitionName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    tabindex: NumberConstructor;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    inputReadOnly: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<(node: HTMLElement) => HTMLElement>;
    };
    panelRender: {
        type: import("vue").PropType<(originPanel: import("../../_util/type").VueNode) => import("../../_util/type").VueNode>;
    };
    role: StringConstructor;
    name: StringConstructor;
    autocomplete: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    showToday: {
        type: BooleanConstructor;
        default: any;
    };
    showTime: {
        type: import("vue").PropType<any>;
        default: any;
    };
    locale: {
        type: import("vue").PropType<any>;
    };
    size: {
        type: import("vue").PropType<any>;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    disabledDate: {
        type: import("vue").PropType<(date: DateType) => boolean>;
    };
    picker: {
        type: import("vue").PropType<import("../../vc-picker/interface").PickerMode>;
    };
    valueFormat: StringConstructor;
} & ExtraProps> : {
    allowEmpty: {
        type: import("vue").PropType<[boolean, boolean]>;
    };
    dateRender: {
        type: import("vue").PropType<any>;
    };
    defaultPickerValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    defaultValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    value: {
        type: import("vue").PropType<[DateType, DateType]>;
    };
    disabledTime: {
        type: import("vue").PropType<(date: DateType, type: any) => import("../../vc-picker/interface").DisabledTimes>;
    };
    disabled: {
        type: import("vue").PropType<boolean | [boolean, boolean]>;
    };
    format: StringConstructor;
    renderExtraFooter: {
        type: import("vue").PropType<() => import("../../_util/type").VueNode>;
    };
    separator: {
        type: StringConstructor;
    };
    ranges: {
        type: import("vue").PropType<Record<string, [DateType, DateType] | (() => [DateType, DateType])>>;
    };
    placeholder: ArrayConstructor;
    mode: {
        type: import("vue").PropType<[PanelMode, PanelMode]>;
    };
    id: StringConstructor;
    dropdownClassName: StringConstructor;
    dropdownAlign: {
        type: import("vue").PropType<import("../../vc-align/interface").AlignType>;
    };
    popupStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    transitionName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    tabindex: NumberConstructor;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    inputReadOnly: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<(node: HTMLElement) => HTMLElement>;
    };
    panelRender: {
        type: import("vue").PropType<(originPanel: import("../../_util/type").VueNode) => import("../../_util/type").VueNode>;
    };
    role: StringConstructor;
    name: StringConstructor;
    autocomplete: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    showToday: {
        type: BooleanConstructor;
        default: any;
    };
    showTime: {
        type: import("vue").PropType<any>;
        default: any;
    };
    locale: {
        type: import("vue").PropType<any>;
    };
    size: {
        type: import("vue").PropType<any>;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    disabledDate: {
        type: import("vue").PropType<(date: DateType) => boolean>;
    };
    picker: {
        type: import("vue").PropType<import("../../vc-picker/interface").PickerMode>;
    };
    valueFormat: StringConstructor;
} & ExtraProps> & {
    onFocus?: (...args: any[]) => any;
    onBlur?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
    onPanelChange?: (...args: any[]) => any;
    "onUpdate:value"?: (...args: any[]) => any;
    onOk?: (...args: any[]) => any;
    onCalendarChange?: (...args: any[]) => any;
    onOpenChange?: (...args: any[]) => any;
    "onUpdate:open"?: (...args: any[]) => any;
}, import("vue").ExtractDefaultPropTypes<{
    allowEmpty: {
        type: import("vue").PropType<[boolean, boolean]>;
    };
    dateRender: {
        type: import("vue").PropType<any>;
    };
    defaultPickerValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    defaultValue: {
        type: import("vue").PropType<[string, string] | [DateType, DateType]>;
    };
    value: {
        type: import("vue").PropType<[DateType, DateType]>;
    };
    disabledTime: {
        type: import("vue").PropType<(date: DateType, type: any) => import("../../vc-picker/interface").DisabledTimes>;
    };
    disabled: {
        type: import("vue").PropType<boolean | [boolean, boolean]>;
    };
    format: StringConstructor;
    renderExtraFooter: {
        type: import("vue").PropType<() => import("../../_util/type").VueNode>;
    };
    separator: {
        type: StringConstructor;
    };
    ranges: {
        type: import("vue").PropType<Record<string, [DateType, DateType] | (() => [DateType, DateType])>>;
    };
    placeholder: ArrayConstructor;
    mode: {
        type: import("vue").PropType<[PanelMode, PanelMode]>;
    };
    id: StringConstructor;
    dropdownClassName: StringConstructor;
    dropdownAlign: {
        type: import("vue").PropType<import("../../vc-align/interface").AlignType>;
    };
    popupStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    transitionName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    tabindex: NumberConstructor;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    inputReadOnly: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<(node: HTMLElement) => HTMLElement>;
    };
    panelRender: {
        type: import("vue").PropType<(originPanel: import("../../_util/type").VueNode) => import("../../_util/type").VueNode>;
    };
    role: StringConstructor;
    name: StringConstructor;
    autocomplete: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    showToday: {
        type: BooleanConstructor;
        default: any;
    };
    showTime: {
        type: import("vue").PropType<any>;
        default: any;
    };
    locale: {
        type: import("vue").PropType<any>;
    };
    size: {
        type: import("vue").PropType<any>;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    disabledDate: {
        type: import("vue").PropType<(date: DateType) => boolean>;
    };
    picker: {
        type: import("vue").PropType<import("../../vc-picker/interface").PickerMode>;
    };
    valueFormat: StringConstructor;
} & ExtraProps>>;
