import { App, ExtractPropTypes, PropType, CSSProperties, FunctionalComponent, CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import { CustomSlotsType, VueNode } from '../_util/type';
import { SizeType } from '../config-provider';
import { BaseSelectRef, SelectProps } from '../vc-select';
import { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from '../vc-tree-select';
import { BaseOptionType, DefaultOptionType, ChangeEventExtra, FieldNames, LegacyDataNode, SimpleModeConfig } from '../vc-tree-select/TreeSelect';
import { FieldNames, Key } from '../vc-tree-select/interface';
import { VueTypeValidableDef } from 'vue-types';
import { RenderDOMFunc, CustomTagProps, DisplayValueType, DropdownRender } from '../vc-select/BaseSelect';
import { AlignType } from '../vc-trigger/interface';
import { CheckedStrategy } from '../vc-tree-select/utils/strategyUtil';
import { ExpandAction } from '../vc-tree/props';
import { TreeNodeProps } from '../vc-tree-select/TreeNode';
type RawValue = string | number;
export interface LabeledValue {
    key?: string;
    value: RawValue;
    label?: any;
}
export type SelectValue = RawValue | RawValue[] | LabeledValue | LabeledValue[];
export type RefTreeSelectProps = BaseSelectRef;
export declare function treeSelectProps<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(): {
    suffixIcon: VueTypeValidableDef<any>;
    size: {
        type: PropType<SizeType>;
        default: SizeType;
    };
    bordered: {
        type: BooleanConstructor;
        default: boolean;
    };
    treeLine: {
        type: PropType<boolean | {
            showLeafIcon: boolean;
        } | undefined>;
        default: boolean | {
            showLeafIcon: boolean;
        } | undefined;
    };
    replaceFields: {
        type: PropType<FieldNames>;
        default: FieldNames;
    };
    placement: {
        type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
        default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
    };
    status: {
        type: PropType<"" | "error" | "warning">;
        default: "" | "error" | "warning";
    };
    popupClassName: StringConstructor;
    /** @deprecated Please use `popupClassName` instead */
    dropdownClassName: StringConstructor;
    'onUpdate:value': {
        type: PropType<(value: any) => void>;
        default: (value: any) => void;
    };
    'onUpdate:treeExpandedKeys': {
        type: PropType<(keys: Key[]) => void>;
        default: (keys: Key[]) => void;
    };
    'onUpdate:searchValue': {
        type: PropType<(value: string) => void>;
        default: (value: string) => void;
    };
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    value: {
        type: PropType<ValueType>;
    };
    animation: StringConstructor;
    direction: {
        type: PropType<"ltr" | "rtl">;
    };
    multiple: {
        type: BooleanConstructor;
        default: undefined;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onChange: {
        type: PropType<(value: ValueType, labelList: any[], extra: ChangeEventExtra) => void>;
    };
    onKeydown: PropType<(e: KeyboardEvent) => void>;
    onKeyup: PropType<(e: KeyboardEvent) => void>;
    onMousedown: PropType<(e: MouseEvent) => void>;
    onMouseenter: PropType<(e: MouseEvent) => void>;
    onMouseleave: PropType<(e: MouseEvent) => void>;
    onSelect: PropType< SelectProps["onSelect"]>;
    onClick: PropType<(e: MouseEvent) => void>;
    children: PropType< VueNode[]>;
    prefixCls: StringConstructor;
    listHeight: NumberConstructor;
    id: StringConstructor;
    autofocus: BooleanConstructor;
    getPopupContainer: {
        type: PropType<RenderDOMFunc>;
    };
    virtual: {
        type: BooleanConstructor;
        default: undefined;
    };
    dropdownMatchSelectWidth: {
        type: PropType<boolean | number>;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultValue: {
        type: PropType<ValueType>;
    };
    tabindex: NumberConstructor;
    showAction: {
        type: PropType<("focus" | "click")[]>;
    };
    transitionName: StringConstructor;
    dropdownAlign: PropType<AlignType>;
    placeholder: VueTypeValidableDef<any>;
    allowClear: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: undefined;
    };
    clearIcon: VueTypeValidableDef<any>;
    notFoundContent: VueTypeValidableDef<any>;
    showSearch: {
        type: BooleanConstructor;
        default: undefined;
    };
    switcherIcon: VueTypeValidableDef<any>;
    treeData: {
        type: PropType<OptionType[]>;
    };
    fieldNames: {
        type: PropType<FieldNames>;
    };
    loadData: {
        type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
    };
    filterTreeNode: {
        type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
        default: undefined;
    };
    treeCheckable: {
        type: BooleanConstructor;
        default: undefined;
    };
    tagRender: {
        type: PropType<(props: CustomTagProps) => any>;
    };
    optionLabelRender: {
        type: PropType<(option: Record<string, any>) => any>;
    };
    onClear: PropType<() => void>;
    choiceTransitionName: StringConstructor;
    onDropdownVisibleChange: {
        type: PropType<(open: boolean) => void>;
    };
    getRawInputElement: {
        type: PropType<() => any>;
    };
    maxTagTextLength: NumberConstructor;
    maxTagCount: {
        type: PropType<number | "responsive">;
    };
    maxTagPlaceholder: {
        type: PropType<(omittedValues: DisplayValueType[]) => any>;
    };
    tokenSeparators: {
        type: PropType<string[]>;
    };
    showArrow: {
        type: BooleanConstructor;
        default: undefined;
    };
    removeIcon: VueTypeValidableDef<any>;
    dropdownStyle: {
        type: PropType<CSSProperties>;
    };
    dropdownRender: {
        type: PropType<DropdownRender>;
    };
    onPopupScroll: PropType<(e: UIEvent) => void>;
    onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
    searchValue: StringConstructor;
    onSearch: {
        type: PropType<(value: string) => void>;
    };
    listItemHeight: NumberConstructor;
    inputValue: StringConstructor;
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: undefined;
    };
    onDeselect: PropType< SelectProps["onDeselect"]>;
    labelInValue: {
        type: BooleanConstructor;
        default: undefined;
    };
    showCheckedStrategy: {
        type: PropType<CheckedStrategy>;
    };
    treeExpandAction: PropType<ExpandAction>;
    treeDefaultExpandAll: {
        type: BooleanConstructor;
        default: undefined;
    };
    treeIcon: VueTypeValidableDef<any>;
    treeLoadedKeys: {
        type: PropType<Key[]>;
    };
    onTreeLoad: {
        type: PropType<(loadedKeys: Key[]) => void>;
    };
    treeNodeFilterProp: StringConstructor;
    treeNodeLabelProp: StringConstructor;
    treeCheckStrictly: {
        type: BooleanConstructor;
        default: undefined;
    };
    treeDataSimpleMode: {
        type: PropType<boolean | SimpleModeConfig>;
        default: undefined;
    };
    treeExpandedKeys: {
        type: PropType<Key[]>;
    };
    treeDefaultExpandedKeys: {
        type: PropType<Key[]>;
    };
    onTreeExpand: {
        type: PropType<(expandedKeys: Key[]) => void>;
    };
    dropdownPopupAlign: VueTypeValidableDef<any>;
};
export type TreeSelectProps = Partial<ExtractPropTypes<ReturnType<typeof treeSelectProps>>>;
export declare const TreeSelectNode: FunctionalComponent<TreeNodeProps, {}, any, {}> & {
    isTreeSelectNode: boolean;
};
declare const _default: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<ExtractPropTypes<{
        suffixIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<SizeType>;
            default: SizeType;
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        treeLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            } | undefined>;
            default: boolean | {
                showLeafIcon: boolean;
            } | undefined;
        };
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        placement: {
            type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
            default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        };
        status: {
            type: PropType<"" | "error" | "warning">;
            default: "" | "error" | "warning";
        };
        popupClassName: StringConstructor;
        /** @deprecated Please use `popupClassName` instead */
        dropdownClassName: StringConstructor;
        'onUpdate:value': {
            type: PropType<(value: any) => void>;
            default: (value: any) => void;
        };
        'onUpdate:treeExpandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:searchValue': {
            type: PropType<(value: string) => void>;
            default: (value: string) => void;
        };
        open: {
            type: BooleanConstructor;
            default: undefined;
        };
        value: {
            type: PropType<any>;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"ltr" | "rtl">;
        };
        multiple: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onChange: {
            type: PropType<(value: any, labelList: any[], extra: ChangeEventExtra) => void>;
        };
        onKeydown: PropType<(e: KeyboardEvent) => void>;
        onKeyup: PropType<(e: KeyboardEvent) => void>;
        onMousedown: PropType<(e: MouseEvent) => void>;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        onSelect: PropType< SelectProps["onSelect"]>;
        onClick: PropType<(e: MouseEvent) => void>;
        children: PropType< VueNode[]>;
        prefixCls: StringConstructor;
        listHeight: NumberConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        dropdownMatchSelectWidth: {
            type: PropType<boolean | number>;
            default: undefined;
        };
        loading: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultValue: {
            type: PropType<any>;
        };
        tabindex: NumberConstructor;
        showAction: {
            type: PropType<("focus" | "click")[]>;
        };
        transitionName: StringConstructor;
        dropdownAlign: PropType<AlignType>;
        placeholder: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultOpen: {
            type: BooleanConstructor;
            default: undefined;
        };
        clearIcon: VueTypeValidableDef<any>;
        notFoundContent: VueTypeValidableDef<any>;
        showSearch: {
            type: BooleanConstructor;
            default: undefined;
        };
        switcherIcon: VueTypeValidableDef<any>;
        treeData: {
            type: PropType<DefaultOptionType[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        loadData: {
            type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
        };
        filterTreeNode: {
            type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
            default: undefined;
        };
        treeCheckable: {
            type: BooleanConstructor;
            default: undefined;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        onClear: PropType<() => void>;
        choiceTransitionName: StringConstructor;
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        getRawInputElement: {
            type: PropType<() => any>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: {
            type: PropType<(omittedValues: DisplayValueType[]) => any>;
        };
        tokenSeparators: {
            type: PropType<string[]>;
        };
        showArrow: {
            type: BooleanConstructor;
            default: undefined;
        };
        removeIcon: VueTypeValidableDef<any>;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        searchValue: StringConstructor;
        onSearch: {
            type: PropType<(value: string) => void>;
        };
        listItemHeight: NumberConstructor;
        inputValue: StringConstructor;
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: undefined;
        };
        onDeselect: PropType< SelectProps["onDeselect"]>;
        labelInValue: {
            type: BooleanConstructor;
            default: undefined;
        };
        showCheckedStrategy: {
            type: PropType<CheckedStrategy>;
        };
        treeExpandAction: PropType<ExpandAction>;
        treeDefaultExpandAll: {
            type: BooleanConstructor;
            default: undefined;
        };
        treeIcon: VueTypeValidableDef<any>;
        treeLoadedKeys: {
            type: PropType<Key[]>;
        };
        onTreeLoad: {
            type: PropType<(loadedKeys: Key[]) => void>;
        };
        treeNodeFilterProp: StringConstructor;
        treeNodeLabelProp: StringConstructor;
        treeCheckStrictly: {
            type: BooleanConstructor;
            default: undefined;
        };
        treeDataSimpleMode: {
            type: PropType<boolean | SimpleModeConfig>;
            default: undefined;
        };
        treeExpandedKeys: {
            type: PropType<Key[]>;
        };
        treeDefaultExpandedKeys: {
            type: PropType<Key[]>;
        };
        onTreeExpand: {
            type: PropType<(expandedKeys: Key[]) => void>;
        };
        dropdownPopupAlign: VueTypeValidableDef<any>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        open: boolean;
        size: SizeType;
        multiple: boolean;
        disabled: boolean;
        autofocus: boolean;
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        status: "" | "error" | "warning";
        allowClear: boolean;
        defaultOpen: boolean;
        'onUpdate:value': (value: any) => void;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showSearch: boolean;
        filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
        replaceFields: FieldNames;
        treeCheckable: boolean;
        showArrow: boolean;
        autoClearSearchValue: boolean;
        labelInValue: boolean;
        treeDefaultExpandAll: boolean;
        treeLine: boolean | {
            showLeafIcon: boolean;
        } | undefined;
        treeCheckStrictly: boolean;
        treeDataSimpleMode: boolean | SimpleModeConfig;
        'onUpdate:treeExpandedKeys': (keys: Key[]) => void;
        'onUpdate:searchValue': (value: string) => void;
    }, true, {}, CustomSlotsType<{
        title?: any;
        titleRender?: any;
        placeholder?: any;
        maxTagPlaceholder?: any;
        treeIcon?: any;
        switcherIcon?: any;
        notFoundContent?: any;
        default?: any;
        leafIcon?: any;
        tagRender?: any;
        suffixIcon?: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<ExtractPropTypes<{
        suffixIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<SizeType>;
            default: SizeType;
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        treeLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            } | undefined>;
            default: boolean | {
                showLeafIcon: boolean;
            } | undefined;
        };
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        placement: {
            type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
            default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        };
        status: {
            type: PropType<"" | "error" | "warning">;
            default: "" | "error" | "warning";
        };
        popupClassName: StringConstructor;
        /** @deprecated Please use `popupClassName` instead */
        dropdownClassName: StringConstructor;
        'onUpdate:value': {
            type: PropType<(value: any) => void>;
            default: (value: any) => void;
        };
        'onUpdate:treeExpandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:searchValue': {
            type: PropType<(value: string) => void>;
            default: (value: string) => void;
        };
        open: {
            type: BooleanConstructor;
            default: undefined;
        };
        value: {
            type: PropType<any>;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"ltr" | "rtl">;
        };
        multiple: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onChange: {
            type: PropType<(value: any, labelList: any[], extra: ChangeEventExtra) => void>;
        };
        onKeydown: PropType<(e: KeyboardEvent) => void>;
        onKeyup: PropType<(e: KeyboardEvent) => void>;
        onMousedown: PropType<(e: MouseEvent) => void>;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        onSelect: PropType< SelectProps["onSelect"]>;
        onClick: PropType<(e: MouseEvent) => void>;
        children: PropType< VueNode[]>;
        prefixCls: StringConstructor;
        listHeight: NumberConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        dropdownMatchSelectWidth: {
            type: PropType<boolean | number>;
            default: undefined;
        };
        loading: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultValue: {
            type: PropType<any>;
        };
        tabindex: NumberConstructor;
        showAction: {
            type: PropType<("focus" | "click")[]>;
        };
        transitionName: StringConstructor;
        dropdownAlign: PropType<AlignType>;
        placeholder: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultOpen: {
            type: BooleanConstructor;
            default: undefined;
        };
        clearIcon: VueTypeValidableDef<any>;
        notFoundContent: VueTypeValidableDef<any>;
        showSearch: {
            type: BooleanConstructor;
            default: undefined;
        };
        switcherIcon: VueTypeValidableDef<any>;
        treeData: {
            type: PropType<DefaultOptionType[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        loadData: {
            type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
        };
        filterTreeNode: {
            type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
            default: undefined;
        };
        treeCheckable: {
            type: BooleanConstructor;
            default: undefined;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        onClear: PropType<() => void>;
        choiceTransitionName: StringConstructor;
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        getRawInputElement: {
            type: PropType<() => any>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: {
            type: PropType<(omittedValues: DisplayValueType[]) => any>;
        };
        tokenSeparators: {
            type: PropType<string[]>;
        };
        showArrow: {
            type: BooleanConstructor;
            default: undefined;
        };
        removeIcon: VueTypeValidableDef<any>;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        searchValue: StringConstructor;
        onSearch: {
            type: PropType<(value: string) => void>;
        };
        listItemHeight: NumberConstructor;
        inputValue: StringConstructor;
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: undefined;
        };
        onDeselect: PropType< SelectProps["onDeselect"]>;
        labelInValue: {
            type: BooleanConstructor;
            default: undefined;
        };
        showCheckedStrategy: {
            type: PropType<CheckedStrategy>;
        };
        treeExpandAction: PropType<ExpandAction>;
        treeDefaultExpandAll: {
            type: BooleanConstructor;
            default: undefined;
        };
        treeIcon: VueTypeValidableDef<any>;
        treeLoadedKeys: {
            type: PropType<Key[]>;
        };
        onTreeLoad: {
            type: PropType<(loadedKeys: Key[]) => void>;
        };
        treeNodeFilterProp: StringConstructor;
        treeNodeLabelProp: StringConstructor;
        treeCheckStrictly: {
            type: BooleanConstructor;
            default: undefined;
        };
        treeDataSimpleMode: {
            type: PropType<boolean | SimpleModeConfig>;
            default: undefined;
        };
        treeExpandedKeys: {
            type: PropType<Key[]>;
        };
        treeDefaultExpandedKeys: {
            type: PropType<Key[]>;
        };
        onTreeExpand: {
            type: PropType<(expandedKeys: Key[]) => void>;
        };
        dropdownPopupAlign: VueTypeValidableDef<any>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        open: boolean;
        size: SizeType;
        multiple: boolean;
        disabled: boolean;
        autofocus: boolean;
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        status: "" | "error" | "warning";
        allowClear: boolean;
        defaultOpen: boolean;
        'onUpdate:value': (value: any) => void;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showSearch: boolean;
        filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
        replaceFields: FieldNames;
        treeCheckable: boolean;
        showArrow: boolean;
        autoClearSearchValue: boolean;
        labelInValue: boolean;
        treeDefaultExpandAll: boolean;
        treeLine: boolean | {
            showLeafIcon: boolean;
        } | undefined;
        treeCheckStrictly: boolean;
        treeDataSimpleMode: boolean | SimpleModeConfig;
        'onUpdate:treeExpandedKeys': (keys: Key[]) => void;
        'onUpdate:searchValue': (value: string) => void;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly<ExtractPropTypes<{
    suffixIcon: VueTypeValidableDef<any>;
    size: {
        type: PropType<SizeType>;
        default: SizeType;
    };
    bordered: {
        type: BooleanConstructor;
        default: boolean;
    };
    treeLine: {
        type: PropType<boolean | {
            showLeafIcon: boolean;
        } | undefined>;
        default: boolean | {
            showLeafIcon: boolean;
        } | undefined;
    };
    replaceFields: {
        type: PropType<FieldNames>;
        default: FieldNames;
    };
    placement: {
        type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
        default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
    };
    status: {
        type: PropType<"" | "error" | "warning">;
        default: "" | "error" | "warning";
    };
    popupClassName: StringConstructor;
    /** @deprecated Please use `popupClassName` instead */
    dropdownClassName: StringConstructor;
    'onUpdate:value': {
        type: PropType<(value: any) => void>;
        default: (value: any) => void;
    };
    'onUpdate:treeExpandedKeys': {
        type: PropType<(keys: Key[]) => void>;
        default: (keys: Key[]) => void;
    };
    'onUpdate:searchValue': {
        type: PropType<(value: string) => void>;
        default: (value: string) => void;
    };
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    value: {
        type: PropType<any>;
    };
    animation: StringConstructor;
    direction: {
        type: PropType<"ltr" | "rtl">;
    };
    multiple: {
        type: BooleanConstructor;
        default: undefined;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onChange: {
        type: PropType<(value: any, labelList: any[], extra: ChangeEventExtra) => void>;
    };
    onKeydown: PropType<(e: KeyboardEvent) => void>;
    onKeyup: PropType<(e: KeyboardEvent) => void>;
    onMousedown: PropType<(e: MouseEvent) => void>;
    onMouseenter: PropType<(e: MouseEvent) => void>;
    onMouseleave: PropType<(e: MouseEvent) => void>;
    onSelect: PropType< SelectProps["onSelect"]>;
    onClick: PropType<(e: MouseEvent) => void>;
    children: PropType< VueNode[]>;
    prefixCls: StringConstructor;
    listHeight: NumberConstructor;
    id: StringConstructor;
    autofocus: BooleanConstructor;
    getPopupContainer: {
        type: PropType<RenderDOMFunc>;
    };
    virtual: {
        type: BooleanConstructor;
        default: undefined;
    };
    dropdownMatchSelectWidth: {
        type: PropType<boolean | number>;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultValue: {
        type: PropType<any>;
    };
    tabindex: NumberConstructor;
    showAction: {
        type: PropType<("focus" | "click")[]>;
    };
    transitionName: StringConstructor;
    dropdownAlign: PropType<AlignType>;
    placeholder: VueTypeValidableDef<any>;
    allowClear: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: undefined;
    };
    clearIcon: VueTypeValidableDef<any>;
    notFoundContent: VueTypeValidableDef<any>;
    showSearch: {
        type: BooleanConstructor;
        default: undefined;
    };
    switcherIcon: VueTypeValidableDef<any>;
    treeData: {
        type: PropType<DefaultOptionType[]>;
    };
    fieldNames: {
        type: PropType<FieldNames>;
    };
    loadData: {
        type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
    };
    filterTreeNode: {
        type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
        default: undefined;
    };
    treeCheckable: {
        type: BooleanConstructor;
        default: undefined;
    };
    tagRender: {
        type: PropType<(props: CustomTagProps) => any>;
    };
    optionLabelRender: {
        type: PropType<(option: Record<string, any>) => any>;
    };
    onClear: PropType<() => void>;
    choiceTransitionName: StringConstructor;
    onDropdownVisibleChange: {
        type: PropType<(open: boolean) => void>;
    };
    getRawInputElement: {
        type: PropType<() => any>;
    };
    maxTagTextLength: NumberConstructor;
    maxTagCount: {
        type: PropType<number | "responsive">;
    };
    maxTagPlaceholder: {
        type: PropType<(omittedValues: DisplayValueType[]) => any>;
    };
    tokenSeparators: {
        type: PropType<string[]>;
    };
    showArrow: {
        type: BooleanConstructor;
        default: undefined;
    };
    removeIcon: VueTypeValidableDef<any>;
    dropdownStyle: {
        type: PropType<CSSProperties>;
    };
    dropdownRender: {
        type: PropType<DropdownRender>;
    };
    onPopupScroll: PropType<(e: UIEvent) => void>;
    onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
    searchValue: StringConstructor;
    onSearch: {
        type: PropType<(value: string) => void>;
    };
    listItemHeight: NumberConstructor;
    inputValue: StringConstructor;
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: undefined;
    };
    onDeselect: PropType< SelectProps["onDeselect"]>;
    labelInValue: {
        type: BooleanConstructor;
        default: undefined;
    };
    showCheckedStrategy: {
        type: PropType<CheckedStrategy>;
    };
    treeExpandAction: PropType<ExpandAction>;
    treeDefaultExpandAll: {
        type: BooleanConstructor;
        default: undefined;
    };
    treeIcon: VueTypeValidableDef<any>;
    treeLoadedKeys: {
        type: PropType<Key[]>;
    };
    onTreeLoad: {
        type: PropType<(loadedKeys: Key[]) => void>;
    };
    treeNodeFilterProp: StringConstructor;
    treeNodeLabelProp: StringConstructor;
    treeCheckStrictly: {
        type: BooleanConstructor;
        default: undefined;
    };
    treeDataSimpleMode: {
        type: PropType<boolean | SimpleModeConfig>;
        default: undefined;
    };
    treeExpandedKeys: {
        type: PropType<Key[]>;
    };
    treeDefaultExpandedKeys: {
        type: PropType<Key[]>;
    };
    onTreeExpand: {
        type: PropType<(expandedKeys: Key[]) => void>;
    };
    dropdownPopupAlign: VueTypeValidableDef<any>;
}>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
    open: boolean;
    size: SizeType;
    multiple: boolean;
    disabled: boolean;
    autofocus: boolean;
    virtual: boolean;
    dropdownMatchSelectWidth: number | boolean;
    loading: boolean;
    bordered: boolean;
    status: "" | "error" | "warning";
    allowClear: boolean;
    defaultOpen: boolean;
    'onUpdate:value': (value: any) => void;
    placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
    showSearch: boolean;
    filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
    replaceFields: FieldNames;
    treeCheckable: boolean;
    showArrow: boolean;
    autoClearSearchValue: boolean;
    labelInValue: boolean;
    treeDefaultExpandAll: boolean;
    treeLine: boolean | {
        showLeafIcon: boolean;
    } | undefined;
    treeCheckStrictly: boolean;
    treeDataSimpleMode: boolean | SimpleModeConfig;
    'onUpdate:treeExpandedKeys': (keys: Key[]) => void;
    'onUpdate:searchValue': (value: string) => void;
}, {}, string, CustomSlotsType<{
    title?: any;
    titleRender?: any;
    placeholder?: any;
    maxTagPlaceholder?: any;
    treeIcon?: any;
    switcherIcon?: any;
    notFoundContent?: any;
    default?: any;
    leafIcon?: any;
    tagRender?: any;
    suffixIcon?: any;
}>, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
    TreeNode: FunctionalComponent<TreeNodeProps, {}, any, {}> & {
        isTreeSelectNode: boolean;
    };
    SHOW_ALL: typeof SHOW_ALL;
    SHOW_PARENT: typeof SHOW_PARENT;
    SHOW_CHILD: typeof SHOW_CHILD;
    install: (app: App) => App<any>;
};
export default _default;
