import type { GenerateConfig } from '../vc-select/generate';
import type { DefaultValueType, DataNode, LabelValueType, RawValueType, ChangeEventExtra, FlattenDataNode } from './interface';
export default function generate(config: {
    prefixCls: string;
    optionList: GenerateConfig<DataNode>['components']['optionList'];
}): import("vue").DefineComponent<{
    multiple: {
        type: BooleanConstructor;
        default: any;
    };
    showArrow: {
        type: BooleanConstructor;
        default: any;
    };
    showSearch: {
        type: BooleanConstructor;
        default: any;
    };
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    value: {
        type: import("vue").PropType<DefaultValueType>;
    };
    defaultValue: {
        type: import("vue").PropType<DefaultValueType>;
    };
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    placeholder: import("vue-types").VueTypeValidableDef<any>;
    inputValue: StringConstructor;
    searchValue: StringConstructor;
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: any;
    };
    maxTagPlaceholder: {
        type: import("vue").PropType<(omittedValues: LabelValueType[]) => any>;
    };
    fieldNames: {
        type: import("vue").PropType<import("./interface").FieldNames>;
    };
    loadData: {
        type: import("vue").PropType<(dataNode: import("./interface").LegacyDataNode) => Promise<unknown>>;
    };
    treeNodeFilterProp: StringConstructor;
    treeNodeLabelProp: StringConstructor;
    treeDataSimpleMode: {
        type: import("vue").PropType<boolean | import("./interface").SimpleModeConfig>;
        default: any;
    };
    treeExpandedKeys: {
        type: import("vue").PropType<import("../_util/type").Key[]>;
    };
    treeDefaultExpandedKeys: {
        type: import("vue").PropType<import("../_util/type").Key[]>;
    };
    treeLoadedKeys: {
        type: import("vue").PropType<import("../_util/type").Key[]>;
    };
    treeCheckable: {
        type: BooleanConstructor;
        default: any;
    };
    treeCheckStrictly: {
        type: BooleanConstructor;
        default: any;
    };
    showCheckedStrategy: {
        type: import("vue").PropType<import("./utils/strategyUtil").CheckedStrategy>;
    };
    treeDefaultExpandAll: {
        type: BooleanConstructor;
        default: any;
    };
    treeData: {
        type: import("vue").PropType<DataNode[]>;
    };
    treeLine: {
        type: BooleanConstructor;
        default: any;
    };
    treeIcon: import("vue-types").VueTypeValidableDef<any>;
    showTreeIcon: {
        type: BooleanConstructor;
        default: any;
    };
    switcherIcon: import("vue-types").VueTypeValidableDef<any>;
    treeMotion: import("vue-types").VueTypeValidableDef<any>;
    children: ArrayConstructor;
    filterTreeNode: {
        type: import("vue").PropType<boolean | import("../vc-select/interface/generator").FilterFunc<import("./interface").LegacyDataNode>>;
        default: any;
    };
    dropdownPopupAlign: import("vue-types").VueTypeValidableDef<any>;
    onSearch: {
        type: import("vue").PropType<(value: string) => void>;
    };
    onChange: {
        type: import("vue").PropType<(value: DefaultValueType, labelList: any[], extra: ChangeEventExtra) => void>;
    };
    onTreeExpand: {
        type: import("vue").PropType<(expandedKeys: import("../_util/type").Key[]) => void>;
    };
    onTreeLoad: {
        type: import("vue").PropType<(loadedKeys: import("../_util/type").Key[]) => void>;
    };
    onDropdownVisibleChange: {
        type: import("vue").PropType<(open: boolean) => void>;
    };
    searchPlaceholder: import("vue-types").VueTypeValidableDef<any>;
    labelRender: {
        type: import("vue").PropType<(entity: FlattenDataNode) => any>;
    };
    onFocus: {
        type: import("vue").PropType<(e: FocusEvent) => void>;
    };
    onBlur: {
        type: import("vue").PropType<(e: FocusEvent) => void>;
    };
    onKeydown: {
        type: import("vue").PropType<(e: KeyboardEvent) => void>;
    };
    onKeyup: {
        type: import("vue").PropType<(e: KeyboardEvent) => void>;
    };
    onClick: {
        type: import("vue").PropType<(e: MouseEvent) => void>;
    };
    onMousedown: {
        type: import("vue").PropType<(e: MouseEvent) => void>;
    };
    onMouseenter: {
        type: import("vue").PropType<(e: MouseEvent) => void>;
    };
    onMouseleave: {
        type: import("vue").PropType<(e: MouseEvent) => void>;
    };
    onSelect: {
        type: import("vue").PropType<(value: RawValueType | LabelValueType, option: DataNode) => void>;
    };
    prefixCls: StringConstructor;
    direction: {
        type: import("vue").PropType<"ltr" | "rtl">;
    };
    animation: StringConstructor;
    tabindex: {
        type: (NumberConstructor | StringConstructor)[];
    };
    loading: {
        type: BooleanConstructor;
        default: any;
    };
    getPopupContainer: {
        type: import("vue").PropType<import("../vc-select/interface").RenderDOMFunc>;
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    dropdownMatchSelectWidth: {
        type: import("vue").PropType<number | boolean>;
        default: any;
    };
    transitionName: StringConstructor;
    showAction: {
        type: import("vue").PropType<("click" | "focus")[]>;
    };
    dropdownClassName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    id: StringConstructor;
    clearIcon: import("vue-types").VueTypeValidableDef<any>;
    options: {
        type: import("vue").PropType<DataNode[]>;
    };
    placement: {
        type: import("vue").PropType<import("../vc-select/generate").Placement>;
    };
    onDeselect: {
        type: import("vue").PropType<(value: RawValueType | LabelValueType, option: DataNode) => void>;
    };
    notFoundContent: import("vue-types").VueTypeValidableDef<any>;
    labelInValue: {
        type: BooleanConstructor;
        default: any;
    };
    optionFilterProp: StringConstructor;
    defaultActiveFirstOption: {
        type: BooleanConstructor;
        default: any;
    };
    onInputKeyDown: {
        type: import("vue").PropType<(e: KeyboardEvent) => void>;
    };
    removeIcon: import("vue-types").VueTypeValidableDef<any>;
    maxTagCount: {
        type: import("vue").PropType<number | "responsive">;
    };
    maxTagTextLength: NumberConstructor;
    tagRender: {
        type: import("vue").PropType<(props: import("../vc-select/interface/generator").CustomTagProps) => any>;
    };
    choiceTransitionName: StringConstructor;
    dropdownStyle: {
        type: import("vue").PropType<import("vue").CSSProperties>;
    };
    dropdownRender: {
        type: import("vue").PropType<(menu: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>) => any>;
    };
    filterSort: {
        type: import("vue").PropType<(optionA: DataNode, optionB: DataNode) => number>;
    };
    onClear: {
        type: import("vue").PropType<import("../vc-select/interface/generator").OnClear>;
    };
    inputIcon: import("vue-types").VueTypeValidableDef<any>;
    listHeight: NumberConstructor;
    listItemHeight: NumberConstructor;
    onPopupScroll: {
        type: import("vue").PropType<(e: UIEvent) => void>;
    };
    internalProps: {
        type: import("vue").PropType<{
            mark?: string;
            onClear?: import("../vc-select/interface/generator").OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
            onRawDeselect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
        }>;
        default: {
            mark?: string;
            onClear?: import("../vc-select/interface/generator").OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
            onRawDeselect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
        };
    };
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    multiple?: unknown;
    showArrow?: unknown;
    showSearch?: unknown;
    open?: unknown;
    defaultOpen?: unknown;
    value?: unknown;
    defaultValue?: unknown;
    disabled?: unknown;
    placeholder?: unknown;
    inputValue?: unknown;
    searchValue?: unknown;
    autoClearSearchValue?: unknown;
    maxTagPlaceholder?: unknown;
    fieldNames?: unknown;
    loadData?: unknown;
    treeNodeFilterProp?: unknown;
    treeNodeLabelProp?: unknown;
    treeDataSimpleMode?: unknown;
    treeExpandedKeys?: unknown;
    treeDefaultExpandedKeys?: unknown;
    treeLoadedKeys?: unknown;
    treeCheckable?: unknown;
    treeCheckStrictly?: unknown;
    showCheckedStrategy?: unknown;
    treeDefaultExpandAll?: unknown;
    treeData?: unknown;
    treeLine?: unknown;
    treeIcon?: unknown;
    showTreeIcon?: unknown;
    switcherIcon?: unknown;
    treeMotion?: unknown;
    children?: unknown;
    filterTreeNode?: unknown;
    dropdownPopupAlign?: unknown;
    onSearch?: unknown;
    onChange?: unknown;
    onTreeExpand?: unknown;
    onTreeLoad?: unknown;
    onDropdownVisibleChange?: unknown;
    searchPlaceholder?: unknown;
    labelRender?: unknown;
    onFocus?: unknown;
    onBlur?: unknown;
    onKeydown?: unknown;
    onKeyup?: unknown;
    onClick?: unknown;
    onMousedown?: unknown;
    onMouseenter?: unknown;
    onMouseleave?: unknown;
    onSelect?: unknown;
    prefixCls?: unknown;
    direction?: unknown;
    animation?: unknown;
    tabindex?: unknown;
    loading?: unknown;
    getPopupContainer?: unknown;
    virtual?: unknown;
    dropdownMatchSelectWidth?: unknown;
    transitionName?: unknown;
    showAction?: unknown;
    dropdownClassName?: unknown;
    allowClear?: unknown;
    autofocus?: unknown;
    id?: unknown;
    clearIcon?: unknown;
    options?: unknown;
    placement?: unknown;
    onDeselect?: unknown;
    notFoundContent?: unknown;
    labelInValue?: unknown;
    optionFilterProp?: unknown;
    defaultActiveFirstOption?: unknown;
    onInputKeyDown?: unknown;
    removeIcon?: unknown;
    maxTagCount?: unknown;
    maxTagTextLength?: unknown;
    tagRender?: unknown;
    choiceTransitionName?: unknown;
    dropdownStyle?: unknown;
    dropdownRender?: unknown;
    filterSort?: unknown;
    onClear?: unknown;
    inputIcon?: unknown;
    listHeight?: unknown;
    listItemHeight?: unknown;
    onPopupScroll?: unknown;
    internalProps?: unknown;
} & {
    internalProps: {
        mark?: string;
        onClear?: import("../vc-select/interface/generator").OnClear;
        skipTriggerChange?: boolean;
        skipTriggerSelect?: boolean;
        onRawSelect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
        onRawDeselect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
    };
} & {
    onFocus?: (e: FocusEvent) => void;
    onBlur?: (e: FocusEvent) => void;
    onChange?: (value: DefaultValueType, labelList: any[], extra: ChangeEventExtra) => void;
    onKeydown?: (e: KeyboardEvent) => void;
    onKeyup?: (e: KeyboardEvent) => void;
    onClick?: (e: MouseEvent) => void;
    onMousedown?: (e: MouseEvent) => void;
    onMouseenter?: (e: MouseEvent) => void;
    onMouseleave?: (e: MouseEvent) => void;
    onSelect?: (value: RawValueType | LabelValueType, option: DataNode) => void;
    prefixCls?: string;
    direction?: "ltr" | "rtl";
    open?: boolean;
    animation?: string;
    multiple?: boolean;
    disabled?: boolean;
    value?: unknown;
    tabindex?: string | number;
    loading?: boolean;
    getPopupContainer?: import("../vc-select/interface").RenderDOMFunc;
    virtual?: boolean;
    dropdownMatchSelectWidth?: number | boolean;
    defaultValue?: unknown;
    transitionName?: string;
    showAction?: ("click" | "focus")[];
    dropdownClassName?: string;
    placeholder?: any;
    allowClear?: boolean;
    autofocus?: boolean;
    defaultOpen?: boolean;
    id?: string;
    clearIcon?: any;
    options?: DataNode[];
    placement?: import("../vc-select/generate").Placement;
    children?: unknown[];
    onDeselect?: (value: RawValueType | LabelValueType, option: DataNode) => void;
    onSearch?: (value: string) => void;
    notFoundContent?: any;
    searchPlaceholder?: any;
    labelInValue?: boolean;
    fieldNames?: unknown;
    optionFilterProp?: string;
    defaultActiveFirstOption?: boolean;
    searchValue?: string;
    showSearch?: boolean;
    onInputKeyDown?: (e: KeyboardEvent) => void;
    removeIcon?: any;
    maxTagCount?: number | "responsive";
    maxTagTextLength?: number;
    maxTagPlaceholder?: (omittedValues: LabelValueType[]) => any;
    tagRender?: (props: import("../vc-select/interface/generator").CustomTagProps) => any;
    choiceTransitionName?: string;
    dropdownStyle?: unknown;
    dropdownRender?: (menu: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>) => any;
    inputValue?: string;
    filterSort?: (optionA: DataNode, optionB: DataNode) => number;
    autoClearSearchValue?: boolean;
    onClear?: import("../vc-select/interface/generator").OnClear;
    showArrow?: boolean;
    inputIcon?: any;
    listHeight?: number;
    listItemHeight?: number;
    onPopupScroll?: (e: UIEvent) => void;
    onDropdownVisibleChange?: (open: boolean) => void;
    switcherIcon?: any;
    treeData?: DataNode[];
    loadData?: (dataNode: import("./interface").LegacyDataNode) => Promise<unknown>;
    filterTreeNode?: boolean | import("../vc-select/interface/generator").FilterFunc<import("./interface").LegacyDataNode>;
    treeCheckStrictly?: boolean;
    treeCheckable?: boolean;
    showCheckedStrategy?: import("./utils/strategyUtil").CheckedStrategy;
    treeNodeFilterProp?: string;
    treeNodeLabelProp?: string;
    treeDataSimpleMode?: any;
    treeExpandedKeys?: import("../_util/type").Key[];
    treeDefaultExpandedKeys?: import("../_util/type").Key[];
    treeLoadedKeys?: import("../_util/type").Key[];
    treeDefaultExpandAll?: boolean;
    treeLine?: boolean;
    treeIcon?: any;
    showTreeIcon?: boolean;
    treeMotion?: any;
    dropdownPopupAlign?: any;
    onTreeExpand?: (expandedKeys: import("../_util/type").Key[]) => void;
    onTreeLoad?: (loadedKeys: import("../_util/type").Key[]) => void;
    labelRender?: (entity: FlattenDataNode) => any;
}>, {
    open: boolean;
    multiple: boolean;
    disabled: boolean;
    loading: boolean;
    virtual: boolean;
    dropdownMatchSelectWidth: number | boolean;
    allowClear: boolean;
    autofocus: boolean;
    defaultOpen: boolean;
    labelInValue: boolean;
    defaultActiveFirstOption: boolean;
    showSearch: boolean;
    autoClearSearchValue: boolean;
    showArrow: boolean;
    internalProps: {
        mark?: string;
        onClear?: import("../vc-select/interface/generator").OnClear;
        skipTriggerChange?: boolean;
        skipTriggerSelect?: boolean;
        onRawSelect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
        onRawDeselect?: (value: import("../vc-select/interface/generator").RawValueType, option: DataNode, source: import("../vc-select/interface/generator").SelectSource) => void;
    };
    filterTreeNode: boolean | import("../vc-select/interface/generator").FilterFunc<import("./interface").LegacyDataNode>;
    treeCheckStrictly: boolean;
    treeCheckable: boolean;
    treeDataSimpleMode: any;
    treeDefaultExpandAll: boolean;
    treeLine: boolean;
    showTreeIcon: boolean;
}>;
