import { LegacyDataNode, FieldNames, Key } from '@aplus-frontend/antdv/es/vc-tree-select/interface';
import { ApFieldTreeSelectProps } from '../interface';
import { CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, CSSProperties, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, DefineComponent } from 'vue';
import { VueTypeValidableDef } from '../../../node_modules/vue-types';
import { ButtonSize } from '@aplus-frontend/antdv/es/button';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { ChangeEventExtra, FieldNames, LegacyDataNode, DefaultOptionType, SimpleModeConfig } from '@aplus-frontend/antdv/es/vc-tree-select/TreeSelect';
import { SelectHandler } from '@aplus-frontend/antdv/es/vc-select/Select';
import { BaseOptionType } from '@aplus-frontend/antdv/es/select';
import { RenderDOMFunc, CustomTagProps, DisplayValueType, DropdownRender } from '@aplus-frontend/antdv/es/vc-select/BaseSelect';
import { AlignType } from '@aplus-frontend/antdv/es/vc-trigger/interface';
import { CheckedStrategy } from '@aplus-frontend/antdv/es/vc-tree-select/utils/strategyUtil';
import { ExpandAction } from '@aplus-frontend/antdv/es/vc-tree/props';
import { FieldMode } from '..';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        title?: any;
        titleRender?: any;
        placeholder?: any;
        maxTagPlaceholder?: any;
        treeIcon?: any;
        switcherIcon?: any;
        notFoundContent?: any;
        default?: any;
        leafIcon?: any;
        tagRender?: any;
        suffixIcon?: any;
    }> & {
        title?: any;
        titleRender?: any;
        placeholder?: any;
        maxTagPlaceholder?: any;
        treeIcon?: any;
        switcherIcon?: any;
        notFoundContent?: any;
        default?: any;
        leafIcon?: any;
        tagRender?: any;
        suffixIcon?: any;
    };
    refs: {
        treeSelectRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
            suffixIcon: VueTypeValidableDef<any>;
            size: {
                type: PropType<ButtonSize>;
                default: ButtonSize;
            };
            bordered: {
                type: BooleanConstructor;
                default: boolean;
            };
            treeLine: {
                type: PropType<boolean | {
                    showLeafIcon: boolean;
                }>;
                default: boolean | {
                    showLeafIcon: boolean;
                };
            };
            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;
            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;
            };
            variant: {
                type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                default: "filled" | "outlined" | "borderless" | "underlined";
            };
            switcherLoadingIcon: {
                default: any;
                type: PropType<any>;
            };
            value: {
                type: PropType<any>;
            };
            children: PropType< VueNode[]>;
            listHeight: NumberConstructor;
            onMouseenter: PropType<(e: MouseEvent) => void>;
            onMouseleave: PropType<(e: MouseEvent) => void>;
            tabindex: NumberConstructor;
            onClick: PropType<(e: MouseEvent) => void>;
            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>;
            onSelect: PropType<SelectHandler<unknown, BaseOptionType>>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            animation: StringConstructor;
            direction: {
                type: PropType<"rtl" | "ltr">;
            };
            multiple: {
                type: BooleanConstructor;
                default: any;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            prefixCls: StringConstructor;
            id: StringConstructor;
            autofocus: BooleanConstructor;
            getPopupContainer: {
                type: PropType<RenderDOMFunc>;
            };
            virtual: {
                type: BooleanConstructor;
                default: any;
            };
            dropdownMatchSelectWidth: {
                type: PropType<number | boolean>;
                default: any;
            };
            placeholder: VueTypeValidableDef<any>;
            loading: {
                type: BooleanConstructor;
                default: any;
            };
            defaultValue: {
                type: PropType<any>;
            };
            prefix: VueTypeValidableDef<any>;
            clearIcon: VueTypeValidableDef<any>;
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            getRawInputElement: {
                type: PropType<() => any>;
            };
            fieldNames: {
                type: PropType<FieldNames>;
            };
            inputValue: StringConstructor;
            searchValue: StringConstructor;
            onSearch: {
                type: PropType<(value: string) => void>;
            };
            autoClearSearchValue: {
                type: BooleanConstructor;
                default: any;
            };
            onDeselect: PropType<SelectHandler<unknown, BaseOptionType>>;
            listItemHeight: NumberConstructor;
            labelInValue: {
                type: BooleanConstructor;
                default: any;
            };
            maxCount: NumberConstructor;
            showSearch: {
                type: BooleanConstructor;
                default: any;
            };
            tagRender: {
                type: PropType<(props: CustomTagProps) => any>;
            };
            optionLabelRender: {
                type: PropType<(option: Record<string, any>) => any>;
            };
            notFoundContent: VueTypeValidableDef<any>;
            onClear: PropType<() => void>;
            choiceTransitionName: StringConstructor;
            defaultOpen: {
                type: BooleanConstructor;
                default: any;
            };
            onDropdownVisibleChange: {
                type: PropType<(open: boolean) => void>;
            };
            maxTagTextLength: NumberConstructor;
            maxTagCount: {
                type: PropType<number | "responsive">;
            };
            maxTagPlaceholder: {
                type: PropType<(omittedValues: DisplayValueType[]) => any>;
            };
            tokenSeparators: {
                type: PropType<string[]>;
            };
            removeIcon: VueTypeValidableDef<any>;
            transitionName: StringConstructor;
            dropdownStyle: {
                type: PropType<CSSProperties>;
            };
            dropdownRender: {
                type: PropType<DropdownRender>;
            };
            dropdownAlign: PropType<AlignType>;
            showAction: {
                type: PropType<("click" | "focus")[]>;
            };
            onPopupScroll: PropType<(e: UIEvent) => void>;
            onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
            showArrow: {
                type: BooleanConstructor;
                default: any;
            };
            showCheckedStrategy: {
                type: PropType<CheckedStrategy>;
            };
            loadData: {
                type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
            };
            filterTreeNode: {
                type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
                default: any;
            };
            treeNodeFilterProp: StringConstructor;
            treeNodeLabelProp: StringConstructor;
            treeCheckable: {
                type: BooleanConstructor;
                default: any;
            };
            treeCheckStrictly: {
                type: BooleanConstructor;
                default: any;
            };
            treeData: {
                type: PropType< DefaultOptionType[]>;
            };
            treeDataSimpleMode: {
                type: PropType<boolean | SimpleModeConfig>;
                default: any;
            };
            treeLoadedKeys: {
                type: PropType< Key[]>;
            };
            onTreeLoad: {
                type: PropType<(loadedKeys: Key[]) => void>;
            };
            treeDefaultExpandAll: {
                type: BooleanConstructor;
                default: any;
            };
            treeExpandedKeys: {
                type: PropType< Key[]>;
            };
            treeDefaultExpandedKeys: {
                type: PropType< Key[]>;
            };
            onTreeExpand: {
                type: PropType<(expandedKeys: Key[]) => void>;
            };
            treeIcon: VueTypeValidableDef<any>;
            switcherIcon: VueTypeValidableDef<any>;
            treeExpandAction: PropType<ExpandAction>;
            dropdownPopupAlign: VueTypeValidableDef<any>;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
            size: ButtonSize;
            open: boolean;
            multiple: boolean;
            disabled: boolean;
            autofocus: boolean;
            variant: "filled" | "outlined" | "borderless" | "underlined";
            virtual: boolean;
            dropdownMatchSelectWidth: number | boolean;
            loading: boolean;
            bordered: boolean;
            'onUpdate:value': (value: any) => void;
            status: "" | "error" | "warning";
            allowClear: boolean;
            autoClearSearchValue: boolean;
            labelInValue: boolean;
            showSearch: boolean;
            defaultOpen: boolean;
            placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            showArrow: boolean;
            treeLine: boolean | {
                showLeafIcon: boolean;
            };
            filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
            treeCheckable: boolean;
            treeCheckStrictly: boolean;
            treeDataSimpleMode: any;
            treeDefaultExpandAll: boolean;
            switcherLoadingIcon: any;
            replaceFields: FieldNames;
            '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;
            clearIcon?: any;
            switcherLoadingIcon?: any;
        }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly< ExtractPropTypes<{
            suffixIcon: VueTypeValidableDef<any>;
            size: {
                type: PropType<ButtonSize>;
                default: ButtonSize;
            };
            bordered: {
                type: BooleanConstructor;
                default: boolean;
            };
            treeLine: {
                type: PropType<boolean | {
                    showLeafIcon: boolean;
                }>;
                default: boolean | {
                    showLeafIcon: boolean;
                };
            };
            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;
            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;
            };
            variant: {
                type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                default: "filled" | "outlined" | "borderless" | "underlined";
            };
            switcherLoadingIcon: {
                default: any;
                type: PropType<any>;
            };
            value: {
                type: PropType<any>;
            };
            children: PropType< VueNode[]>;
            listHeight: NumberConstructor;
            onMouseenter: PropType<(e: MouseEvent) => void>;
            onMouseleave: PropType<(e: MouseEvent) => void>;
            tabindex: NumberConstructor;
            onClick: PropType<(e: MouseEvent) => void>;
            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>;
            onSelect: PropType<SelectHandler<unknown, BaseOptionType>>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            animation: StringConstructor;
            direction: {
                type: PropType<"rtl" | "ltr">;
            };
            multiple: {
                type: BooleanConstructor;
                default: any;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            prefixCls: StringConstructor;
            id: StringConstructor;
            autofocus: BooleanConstructor;
            getPopupContainer: {
                type: PropType<RenderDOMFunc>;
            };
            virtual: {
                type: BooleanConstructor;
                default: any;
            };
            dropdownMatchSelectWidth: {
                type: PropType<number | boolean>;
                default: any;
            };
            placeholder: VueTypeValidableDef<any>;
            loading: {
                type: BooleanConstructor;
                default: any;
            };
            defaultValue: {
                type: PropType<any>;
            };
            prefix: VueTypeValidableDef<any>;
            clearIcon: VueTypeValidableDef<any>;
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            getRawInputElement: {
                type: PropType<() => any>;
            };
            fieldNames: {
                type: PropType<FieldNames>;
            };
            inputValue: StringConstructor;
            searchValue: StringConstructor;
            onSearch: {
                type: PropType<(value: string) => void>;
            };
            autoClearSearchValue: {
                type: BooleanConstructor;
                default: any;
            };
            onDeselect: PropType<SelectHandler<unknown, BaseOptionType>>;
            listItemHeight: NumberConstructor;
            labelInValue: {
                type: BooleanConstructor;
                default: any;
            };
            maxCount: NumberConstructor;
            showSearch: {
                type: BooleanConstructor;
                default: any;
            };
            tagRender: {
                type: PropType<(props: CustomTagProps) => any>;
            };
            optionLabelRender: {
                type: PropType<(option: Record<string, any>) => any>;
            };
            notFoundContent: VueTypeValidableDef<any>;
            onClear: PropType<() => void>;
            choiceTransitionName: StringConstructor;
            defaultOpen: {
                type: BooleanConstructor;
                default: any;
            };
            onDropdownVisibleChange: {
                type: PropType<(open: boolean) => void>;
            };
            maxTagTextLength: NumberConstructor;
            maxTagCount: {
                type: PropType<number | "responsive">;
            };
            maxTagPlaceholder: {
                type: PropType<(omittedValues: DisplayValueType[]) => any>;
            };
            tokenSeparators: {
                type: PropType<string[]>;
            };
            removeIcon: VueTypeValidableDef<any>;
            transitionName: StringConstructor;
            dropdownStyle: {
                type: PropType<CSSProperties>;
            };
            dropdownRender: {
                type: PropType<DropdownRender>;
            };
            dropdownAlign: PropType<AlignType>;
            showAction: {
                type: PropType<("click" | "focus")[]>;
            };
            onPopupScroll: PropType<(e: UIEvent) => void>;
            onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
            showArrow: {
                type: BooleanConstructor;
                default: any;
            };
            showCheckedStrategy: {
                type: PropType<CheckedStrategy>;
            };
            loadData: {
                type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
            };
            filterTreeNode: {
                type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
                default: any;
            };
            treeNodeFilterProp: StringConstructor;
            treeNodeLabelProp: StringConstructor;
            treeCheckable: {
                type: BooleanConstructor;
                default: any;
            };
            treeCheckStrictly: {
                type: BooleanConstructor;
                default: any;
            };
            treeData: {
                type: PropType< DefaultOptionType[]>;
            };
            treeDataSimpleMode: {
                type: PropType<boolean | SimpleModeConfig>;
                default: any;
            };
            treeLoadedKeys: {
                type: PropType< Key[]>;
            };
            onTreeLoad: {
                type: PropType<(loadedKeys: Key[]) => void>;
            };
            treeDefaultExpandAll: {
                type: BooleanConstructor;
                default: any;
            };
            treeExpandedKeys: {
                type: PropType< Key[]>;
            };
            treeDefaultExpandedKeys: {
                type: PropType< Key[]>;
            };
            onTreeExpand: {
                type: PropType<(expandedKeys: Key[]) => void>;
            };
            treeIcon: VueTypeValidableDef<any>;
            switcherIcon: VueTypeValidableDef<any>;
            treeExpandAction: PropType<ExpandAction>;
            dropdownPopupAlign: VueTypeValidableDef<any>;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
            size: ButtonSize;
            open: boolean;
            multiple: boolean;
            disabled: boolean;
            autofocus: boolean;
            variant: "filled" | "outlined" | "borderless" | "underlined";
            virtual: boolean;
            dropdownMatchSelectWidth: number | boolean;
            loading: boolean;
            bordered: boolean;
            'onUpdate:value': (value: any) => void;
            status: "" | "error" | "warning";
            allowClear: boolean;
            autoClearSearchValue: boolean;
            labelInValue: boolean;
            showSearch: boolean;
            defaultOpen: boolean;
            placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            showArrow: boolean;
            treeLine: boolean | {
                showLeafIcon: boolean;
            };
            filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
            treeCheckable: boolean;
            treeCheckStrictly: boolean;
            treeDataSimpleMode: any;
            treeDefaultExpandAll: boolean;
            switcherLoadingIcon: any;
            replaceFields: FieldNames;
            'onUpdate:treeExpandedKeys': (keys: Key[]) => void;
            'onUpdate:searchValue': (value: string) => void;
        }> | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFieldTreeSelectProps, {
    blur: () => void;
    focus: () => void;
    request: (currentNode?: LegacyDataNode, clear?: boolean) => Promise<void>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, PublicProps, Readonly<ApFieldTreeSelectProps> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {
    mode: FieldMode;
    open: boolean;
    multiple: boolean;
    disabled: boolean;
    virtual: boolean;
    dropdownMatchSelectWidth: number | boolean;
    autofocus: boolean;
    loading: boolean;
    bordered: boolean;
    allowClear: boolean;
    showArrow: boolean;
    autoClearSearchValue: boolean;
    labelInValue: boolean;
    showSearch: boolean;
    defaultOpen: boolean;
    emptyText: string;
    treeCheckable: boolean;
    treeCheckStrictly: boolean;
    treeDefaultExpandAll: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    treeSelectRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
        suffixIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<ButtonSize>;
            default: ButtonSize;
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        treeLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        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;
        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;
        };
        variant: {
            type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
            default: "filled" | "outlined" | "borderless" | "underlined";
        };
        switcherLoadingIcon: {
            default: any;
            type: PropType<any>;
        };
        value: {
            type: PropType<any>;
        };
        children: PropType< VueNode[]>;
        listHeight: NumberConstructor;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        tabindex: NumberConstructor;
        onClick: PropType<(e: MouseEvent) => void>;
        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>;
        onSelect: PropType<SelectHandler<unknown, BaseOptionType>>;
        open: {
            type: BooleanConstructor;
            default: any;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"rtl" | "ltr">;
        };
        multiple: {
            type: BooleanConstructor;
            default: any;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        prefixCls: StringConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: any;
        };
        dropdownMatchSelectWidth: {
            type: PropType<number | boolean>;
            default: any;
        };
        placeholder: VueTypeValidableDef<any>;
        loading: {
            type: BooleanConstructor;
            default: any;
        };
        defaultValue: {
            type: PropType<any>;
        };
        prefix: VueTypeValidableDef<any>;
        clearIcon: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        getRawInputElement: {
            type: PropType<() => any>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        inputValue: StringConstructor;
        searchValue: StringConstructor;
        onSearch: {
            type: PropType<(value: string) => void>;
        };
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: any;
        };
        onDeselect: PropType<SelectHandler<unknown, BaseOptionType>>;
        listItemHeight: NumberConstructor;
        labelInValue: {
            type: BooleanConstructor;
            default: any;
        };
        maxCount: NumberConstructor;
        showSearch: {
            type: BooleanConstructor;
            default: any;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        notFoundContent: VueTypeValidableDef<any>;
        onClear: PropType<() => void>;
        choiceTransitionName: StringConstructor;
        defaultOpen: {
            type: BooleanConstructor;
            default: any;
        };
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: {
            type: PropType<(omittedValues: DisplayValueType[]) => any>;
        };
        tokenSeparators: {
            type: PropType<string[]>;
        };
        removeIcon: VueTypeValidableDef<any>;
        transitionName: StringConstructor;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        dropdownAlign: PropType<AlignType>;
        showAction: {
            type: PropType<("click" | "focus")[]>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        showArrow: {
            type: BooleanConstructor;
            default: any;
        };
        showCheckedStrategy: {
            type: PropType<CheckedStrategy>;
        };
        loadData: {
            type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
        };
        filterTreeNode: {
            type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
            default: any;
        };
        treeNodeFilterProp: StringConstructor;
        treeNodeLabelProp: StringConstructor;
        treeCheckable: {
            type: BooleanConstructor;
            default: any;
        };
        treeCheckStrictly: {
            type: BooleanConstructor;
            default: any;
        };
        treeData: {
            type: PropType< DefaultOptionType[]>;
        };
        treeDataSimpleMode: {
            type: PropType<boolean | SimpleModeConfig>;
            default: any;
        };
        treeLoadedKeys: {
            type: PropType< Key[]>;
        };
        onTreeLoad: {
            type: PropType<(loadedKeys: Key[]) => void>;
        };
        treeDefaultExpandAll: {
            type: BooleanConstructor;
            default: any;
        };
        treeExpandedKeys: {
            type: PropType< Key[]>;
        };
        treeDefaultExpandedKeys: {
            type: PropType< Key[]>;
        };
        onTreeExpand: {
            type: PropType<(expandedKeys: Key[]) => void>;
        };
        treeIcon: VueTypeValidableDef<any>;
        switcherIcon: VueTypeValidableDef<any>;
        treeExpandAction: PropType<ExpandAction>;
        dropdownPopupAlign: VueTypeValidableDef<any>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        size: ButtonSize;
        open: boolean;
        multiple: boolean;
        disabled: boolean;
        autofocus: boolean;
        variant: "filled" | "outlined" | "borderless" | "underlined";
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        'onUpdate:value': (value: any) => void;
        status: "" | "error" | "warning";
        allowClear: boolean;
        autoClearSearchValue: boolean;
        labelInValue: boolean;
        showSearch: boolean;
        defaultOpen: boolean;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showArrow: boolean;
        treeLine: boolean | {
            showLeafIcon: boolean;
        };
        filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
        treeCheckable: boolean;
        treeCheckStrictly: boolean;
        treeDataSimpleMode: any;
        treeDefaultExpandAll: boolean;
        switcherLoadingIcon: any;
        replaceFields: FieldNames;
        '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;
        clearIcon?: any;
        switcherLoadingIcon?: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        suffixIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<ButtonSize>;
            default: ButtonSize;
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        treeLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        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;
        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;
        };
        variant: {
            type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
            default: "filled" | "outlined" | "borderless" | "underlined";
        };
        switcherLoadingIcon: {
            default: any;
            type: PropType<any>;
        };
        value: {
            type: PropType<any>;
        };
        children: PropType< VueNode[]>;
        listHeight: NumberConstructor;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        tabindex: NumberConstructor;
        onClick: PropType<(e: MouseEvent) => void>;
        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>;
        onSelect: PropType<SelectHandler<unknown, BaseOptionType>>;
        open: {
            type: BooleanConstructor;
            default: any;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"rtl" | "ltr">;
        };
        multiple: {
            type: BooleanConstructor;
            default: any;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        prefixCls: StringConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: any;
        };
        dropdownMatchSelectWidth: {
            type: PropType<number | boolean>;
            default: any;
        };
        placeholder: VueTypeValidableDef<any>;
        loading: {
            type: BooleanConstructor;
            default: any;
        };
        defaultValue: {
            type: PropType<any>;
        };
        prefix: VueTypeValidableDef<any>;
        clearIcon: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        getRawInputElement: {
            type: PropType<() => any>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        inputValue: StringConstructor;
        searchValue: StringConstructor;
        onSearch: {
            type: PropType<(value: string) => void>;
        };
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: any;
        };
        onDeselect: PropType<SelectHandler<unknown, BaseOptionType>>;
        listItemHeight: NumberConstructor;
        labelInValue: {
            type: BooleanConstructor;
            default: any;
        };
        maxCount: NumberConstructor;
        showSearch: {
            type: BooleanConstructor;
            default: any;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        notFoundContent: VueTypeValidableDef<any>;
        onClear: PropType<() => void>;
        choiceTransitionName: StringConstructor;
        defaultOpen: {
            type: BooleanConstructor;
            default: any;
        };
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: {
            type: PropType<(omittedValues: DisplayValueType[]) => any>;
        };
        tokenSeparators: {
            type: PropType<string[]>;
        };
        removeIcon: VueTypeValidableDef<any>;
        transitionName: StringConstructor;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        dropdownAlign: PropType<AlignType>;
        showAction: {
            type: PropType<("click" | "focus")[]>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        showArrow: {
            type: BooleanConstructor;
            default: any;
        };
        showCheckedStrategy: {
            type: PropType<CheckedStrategy>;
        };
        loadData: {
            type: PropType<(dataNode: LegacyDataNode) => Promise<unknown>>;
        };
        filterTreeNode: {
            type: PropType<boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)>;
            default: any;
        };
        treeNodeFilterProp: StringConstructor;
        treeNodeLabelProp: StringConstructor;
        treeCheckable: {
            type: BooleanConstructor;
            default: any;
        };
        treeCheckStrictly: {
            type: BooleanConstructor;
            default: any;
        };
        treeData: {
            type: PropType< DefaultOptionType[]>;
        };
        treeDataSimpleMode: {
            type: PropType<boolean | SimpleModeConfig>;
            default: any;
        };
        treeLoadedKeys: {
            type: PropType< Key[]>;
        };
        onTreeLoad: {
            type: PropType<(loadedKeys: Key[]) => void>;
        };
        treeDefaultExpandAll: {
            type: BooleanConstructor;
            default: any;
        };
        treeExpandedKeys: {
            type: PropType< Key[]>;
        };
        treeDefaultExpandedKeys: {
            type: PropType< Key[]>;
        };
        onTreeExpand: {
            type: PropType<(expandedKeys: Key[]) => void>;
        };
        treeIcon: VueTypeValidableDef<any>;
        switcherIcon: VueTypeValidableDef<any>;
        treeExpandAction: PropType<ExpandAction>;
        dropdownPopupAlign: VueTypeValidableDef<any>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        size: ButtonSize;
        open: boolean;
        multiple: boolean;
        disabled: boolean;
        autofocus: boolean;
        variant: "filled" | "outlined" | "borderless" | "underlined";
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        'onUpdate:value': (value: any) => void;
        status: "" | "error" | "warning";
        allowClear: boolean;
        autoClearSearchValue: boolean;
        labelInValue: boolean;
        showSearch: boolean;
        defaultOpen: boolean;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showArrow: boolean;
        treeLine: boolean | {
            showLeafIcon: boolean;
        };
        filterTreeNode: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
        treeCheckable: boolean;
        treeCheckStrictly: boolean;
        treeDataSimpleMode: any;
        treeDefaultExpandAll: boolean;
        switcherLoadingIcon: any;
        replaceFields: FieldNames;
        'onUpdate:treeExpandedKeys': (keys: Key[]) => void;
        'onUpdate:searchValue': (value: string) => 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;
    };
};
