import { LegacyDataNode, FieldNames, Key } from '@aplus-frontend/antdv/es/vc-tree-select/interface';
import { ApFormItemSlots } from '../../interface';
import { ApFormItemTreeSelectProps } from '../interface';
import { ComponentInternalInstance, VNode, CSSProperties, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, Slot, ComponentPublicInstance, ComponentOptionsBase, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties, DefineComponent } from 'vue';
import { FieldMode, ApFieldTreeSelectProps } from '../../../ap-field';
import { ChangeEventExtra, FieldNames, DefaultOptionType, BaseOptionType, SimpleModeConfig, LegacyDataNode } 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 { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
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 { Recordable } from '../../../type';
import { TreeSelectProps } from '@aplus-frontend/antdv';
import { VueTypeValidableDef } from '../../../../node_modules/vue-types';
import { ButtonSize } from '@aplus-frontend/antdv/es/button';
import { OnCleanup } from '@vue/reactivity';
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;
    } & Omit<ApFormItemSlots, "default">> & {
        title?: any;
        titleRender?: any;
        placeholder?: any;
        maxTagPlaceholder?: any;
        treeIcon?: any;
        switcherIcon?: any;
        notFoundContent?: any;
        default?: any;
        leafIcon?: any;
        tagRender?: any;
        suffixIcon?: any;
    } & Omit<ApFormItemSlots, "default">;
    refs: {
        treeSelectRef: ({
            $: ComponentInternalInstance;
            $data: {};
            $props: {
                readonly mode?: FieldMode | undefined;
                readonly class?: unknown;
                readonly style?: unknown;
                readonly emptyText?: string | undefined;
                readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
                readonly size?: "small" | "middle" | "large" | undefined;
                readonly onBlur?: ((e: FocusEvent) => void) | undefined;
                readonly onChange?: ((value: unknown, labelList: any[], extra: ChangeEventExtra) => void) | undefined;
                readonly onClick?: ((e: MouseEvent) => void) | undefined;
                readonly onFocus?: ((e: FocusEvent) => void) | undefined;
                readonly onKeydown?: ((e: KeyboardEvent) => void) | undefined;
                readonly onKeyup?: ((e: KeyboardEvent) => void) | undefined;
                readonly onMousedown?: ((e: MouseEvent) => void) | undefined;
                readonly onMouseenter?: ((e: MouseEvent) => void) | undefined;
                readonly onMouseleave?: ((e: MouseEvent) => void) | undefined;
                readonly onSelect?: SelectHandler<unknown, BaseOptionType> | undefined;
                readonly placement?: "topLeft" | "bottomLeft" | "bottomRight" | "topRight" | undefined;
                readonly value?: unknown;
                readonly open?: boolean | undefined;
                readonly multiple?: boolean | undefined;
                readonly disabled?: boolean | undefined;
                readonly direction?: "ltr" | "rtl" | undefined;
                readonly animation?: string | undefined;
                readonly children?: VueNode[] | undefined;
                readonly placeholder?: any;
                readonly id?: string | undefined;
                readonly getPopupContainer?: RenderDOMFunc | undefined;
                readonly prefixCls?: string | undefined;
                readonly virtual?: boolean | undefined;
                readonly variant?: "filled" | "outlined" | "borderless" | "underlined" | undefined;
                readonly dropdownMatchSelectWidth?: number | boolean | undefined;
                readonly autofocus?: boolean | undefined;
                readonly loading?: boolean | undefined;
                readonly bordered?: boolean | undefined;
                readonly 'onUpdate:value'?: (((value: any) => void) & ((...args: any[]) => any)) | undefined;
                readonly status?: "" | "error" | "warning" | undefined;
                readonly defaultValue?: unknown;
                readonly prefix?: any;
                readonly clearIcon?: any;
                readonly allowClear?: boolean | undefined;
                readonly notFoundContent?: any;
                readonly suffixIcon?: any;
                readonly showArrow?: boolean | undefined;
                readonly maxCount?: number | undefined;
                readonly transitionName?: string | undefined;
                readonly choiceTransitionName?: string | undefined;
                readonly popupClassName?: string | undefined;
                readonly dropdownClassName?: string | undefined;
                readonly listHeight?: number | undefined;
                readonly tabindex?: number | undefined;
                readonly fieldNames?: FieldNames | undefined;
                readonly inputValue?: string | undefined;
                readonly searchValue?: string | undefined;
                readonly onSearch?: ((value: string) => void) | undefined;
                readonly autoClearSearchValue?: boolean | undefined;
                readonly onDeselect?: SelectHandler<unknown, BaseOptionType> | undefined;
                readonly listItemHeight?: number | undefined;
                readonly labelInValue?: boolean | undefined;
                readonly showSearch?: boolean | undefined;
                readonly tagRender?: ((props: CustomTagProps) => any) | undefined;
                readonly optionLabelRender?: ((option: Record<string, any>) => any) | undefined;
                readonly onClear?: (() => void) | undefined;
                readonly defaultOpen?: boolean | undefined;
                readonly onDropdownVisibleChange?: ((open: boolean) => void) | undefined;
                readonly maxTagTextLength?: number | undefined;
                readonly maxTagCount?: number | "responsive" | undefined;
                readonly maxTagPlaceholder?: ((omittedValues: DisplayValueType[]) => any) | undefined;
                readonly tokenSeparators?: string[] | undefined;
                readonly removeIcon?: any;
                readonly dropdownStyle?: CSSProperties | undefined;
                readonly dropdownRender?: DropdownRender | undefined;
                readonly dropdownAlign?: AlignType | undefined;
                readonly showAction?: ("click" | "focus")[] | undefined;
                readonly onPopupScroll?: ((e: UIEvent) => void) | undefined;
                readonly onInputKeyDown?: ((e: KeyboardEvent) => void) | undefined;
                readonly getRawInputElement?: (() => any) | undefined;
                readonly showCheckedStrategy?: CheckedStrategy | undefined;
                readonly treeLine?: boolean | {
                    showLeafIcon: boolean;
                } | undefined;
                readonly replaceFields?: FieldNames | undefined;
                readonly 'onUpdate:treeExpandedKeys'?: ((keys: Key[]) => void) | undefined;
                readonly 'onUpdate:searchValue'?: ((value: string) => void) | undefined;
                readonly switcherLoadingIcon?: any;
                readonly filterTreeNode?: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean) | undefined;
                readonly treeNodeFilterProp?: string | undefined;
                readonly treeNodeLabelProp?: string | undefined;
                readonly treeCheckable?: boolean | undefined;
                readonly treeCheckStrictly?: boolean | undefined;
                readonly treeData?: ( BaseOptionType | DefaultOptionType)[] | undefined;
                readonly treeDataSimpleMode?: boolean | SimpleModeConfig | undefined;
                readonly treeLoadedKeys?: Key[] | undefined;
                readonly onTreeLoad?: ((loadedKeys: Key[]) => void) | undefined;
                readonly treeDefaultExpandAll?: boolean | undefined;
                readonly treeExpandedKeys?: Key[] | undefined;
                readonly treeDefaultExpandedKeys?: Key[] | undefined;
                readonly onTreeExpand?: ((expandedKeys: Key[]) => void) | undefined;
                readonly treeIcon?: any;
                readonly switcherIcon?: any;
                readonly treeExpandAction?: ExpandAction | undefined;
                readonly dropdownPopupAlign?: any;
                readonly request?: ((currentNode?: LegacyDataNode, extraParams?: Recordable) => Promise< TreeSelectProps["treeData"]>) | undefined;
                readonly lazy?: boolean | undefined;
                readonly params?: Recordable | undefined;
                readonly loadData?: boolean | undefined;
            } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
            $attrs: Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                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;
            };
            $slots: Readonly<{
                [name: string]: Slot<any> | undefined;
            }>;
            $root: ComponentPublicInstance | null;
            $parent: ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "update:value", ...args: any[]) => void;
            $el: any;
            $options: ComponentOptionsBase<Readonly< ApFieldTreeSelectProps> & Readonly<{
                "onUpdate:value"?: ((...args: any[]) => any) | undefined;
            }>, {
                blur: () => void;
                focus: () => void;
                request: (currentNode?: LegacyDataNode, clear?: boolean) => Promise<void>;
            }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
                "update:value": (...args: any[]) => void;
            }, string, {
                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, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
        } & Readonly<{
            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;
        }> & Omit<Readonly< ApFieldTreeSelectProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, "blur" | "focus" | "request" | ("mode" | "open" | "multiple" | "disabled" | "virtual" | "dropdownMatchSelectWidth" | "autofocus" | "loading" | "bordered" | "allowClear" | "showArrow" | "autoClearSearchValue" | "labelInValue" | "showSearch" | "defaultOpen" | "emptyText" | "treeCheckable" | "treeCheckStrictly" | "treeDefaultExpandAll")> & {
            blur: () => void;
            focus: () => void;
            request: (currentNode?: LegacyDataNode, clear?: boolean) => Promise<void>;
        } & {} & ComponentCustomProperties & {} & {
            $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;
            };
        }) | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFormItemTreeSelectProps, {
    focus: () => void;
    blur: () => void;
    request: (currentNode?: LegacyDataNode, clear?: boolean) => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ApFormItemTreeSelectProps> & Readonly<{}>, {
    disabled: boolean;
    required: boolean;
    colon: boolean;
    hasFeedback: boolean;
    autoLink: boolean;
    validateFirst: boolean;
    field: Omit< ApFieldTreeSelectProps, "value" | "onUpdate:value">;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    treeSelectRef: ({
        $: ComponentInternalInstance;
        $data: {};
        $props: {
            readonly mode?: FieldMode | undefined;
            readonly class?: unknown;
            readonly style?: unknown;
            readonly emptyText?: string | undefined;
            readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
            readonly size?: "small" | "middle" | "large" | undefined;
            readonly onBlur?: ((e: FocusEvent) => void) | undefined;
            readonly onChange?: ((value: unknown, labelList: any[], extra: ChangeEventExtra) => void) | undefined;
            readonly onClick?: ((e: MouseEvent) => void) | undefined;
            readonly onFocus?: ((e: FocusEvent) => void) | undefined;
            readonly onKeydown?: ((e: KeyboardEvent) => void) | undefined;
            readonly onKeyup?: ((e: KeyboardEvent) => void) | undefined;
            readonly onMousedown?: ((e: MouseEvent) => void) | undefined;
            readonly onMouseenter?: ((e: MouseEvent) => void) | undefined;
            readonly onMouseleave?: ((e: MouseEvent) => void) | undefined;
            readonly onSelect?: SelectHandler<unknown, BaseOptionType> | undefined;
            readonly placement?: "topLeft" | "bottomLeft" | "bottomRight" | "topRight" | undefined;
            readonly value?: unknown;
            readonly open?: boolean | undefined;
            readonly multiple?: boolean | undefined;
            readonly disabled?: boolean | undefined;
            readonly direction?: "ltr" | "rtl" | undefined;
            readonly animation?: string | undefined;
            readonly children?: VueNode[] | undefined;
            readonly placeholder?: any;
            readonly id?: string | undefined;
            readonly getPopupContainer?: RenderDOMFunc | undefined;
            readonly prefixCls?: string | undefined;
            readonly virtual?: boolean | undefined;
            readonly variant?: "filled" | "outlined" | "borderless" | "underlined" | undefined;
            readonly dropdownMatchSelectWidth?: number | boolean | undefined;
            readonly autofocus?: boolean | undefined;
            readonly loading?: boolean | undefined;
            readonly bordered?: boolean | undefined;
            readonly 'onUpdate:value'?: (((value: any) => void) & ((...args: any[]) => any)) | undefined;
            readonly status?: "" | "error" | "warning" | undefined;
            readonly defaultValue?: unknown;
            readonly prefix?: any;
            readonly clearIcon?: any;
            readonly allowClear?: boolean | undefined;
            readonly notFoundContent?: any;
            readonly suffixIcon?: any;
            readonly showArrow?: boolean | undefined;
            readonly maxCount?: number | undefined;
            readonly transitionName?: string | undefined;
            readonly choiceTransitionName?: string | undefined;
            readonly popupClassName?: string | undefined;
            readonly dropdownClassName?: string | undefined;
            readonly listHeight?: number | undefined;
            readonly tabindex?: number | undefined;
            readonly fieldNames?: FieldNames | undefined;
            readonly inputValue?: string | undefined;
            readonly searchValue?: string | undefined;
            readonly onSearch?: ((value: string) => void) | undefined;
            readonly autoClearSearchValue?: boolean | undefined;
            readonly onDeselect?: SelectHandler<unknown, BaseOptionType> | undefined;
            readonly listItemHeight?: number | undefined;
            readonly labelInValue?: boolean | undefined;
            readonly showSearch?: boolean | undefined;
            readonly tagRender?: ((props: CustomTagProps) => any) | undefined;
            readonly optionLabelRender?: ((option: Record<string, any>) => any) | undefined;
            readonly onClear?: (() => void) | undefined;
            readonly defaultOpen?: boolean | undefined;
            readonly onDropdownVisibleChange?: ((open: boolean) => void) | undefined;
            readonly maxTagTextLength?: number | undefined;
            readonly maxTagCount?: number | "responsive" | undefined;
            readonly maxTagPlaceholder?: ((omittedValues: DisplayValueType[]) => any) | undefined;
            readonly tokenSeparators?: string[] | undefined;
            readonly removeIcon?: any;
            readonly dropdownStyle?: CSSProperties | undefined;
            readonly dropdownRender?: DropdownRender | undefined;
            readonly dropdownAlign?: AlignType | undefined;
            readonly showAction?: ("click" | "focus")[] | undefined;
            readonly onPopupScroll?: ((e: UIEvent) => void) | undefined;
            readonly onInputKeyDown?: ((e: KeyboardEvent) => void) | undefined;
            readonly getRawInputElement?: (() => any) | undefined;
            readonly showCheckedStrategy?: CheckedStrategy | undefined;
            readonly treeLine?: boolean | {
                showLeafIcon: boolean;
            } | undefined;
            readonly replaceFields?: FieldNames | undefined;
            readonly 'onUpdate:treeExpandedKeys'?: ((keys: Key[]) => void) | undefined;
            readonly 'onUpdate:searchValue'?: ((value: string) => void) | undefined;
            readonly switcherLoadingIcon?: any;
            readonly filterTreeNode?: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean) | undefined;
            readonly treeNodeFilterProp?: string | undefined;
            readonly treeNodeLabelProp?: string | undefined;
            readonly treeCheckable?: boolean | undefined;
            readonly treeCheckStrictly?: boolean | undefined;
            readonly treeData?: ( BaseOptionType | DefaultOptionType)[] | undefined;
            readonly treeDataSimpleMode?: boolean | SimpleModeConfig | undefined;
            readonly treeLoadedKeys?: Key[] | undefined;
            readonly onTreeLoad?: ((loadedKeys: Key[]) => void) | undefined;
            readonly treeDefaultExpandAll?: boolean | undefined;
            readonly treeExpandedKeys?: Key[] | undefined;
            readonly treeDefaultExpandedKeys?: Key[] | undefined;
            readonly onTreeExpand?: ((expandedKeys: Key[]) => void) | undefined;
            readonly treeIcon?: any;
            readonly switcherIcon?: any;
            readonly treeExpandAction?: ExpandAction | undefined;
            readonly dropdownPopupAlign?: any;
            readonly request?: ((currentNode?: LegacyDataNode, extraParams?: Recordable) => Promise< TreeSelectProps["treeData"]>) | undefined;
            readonly lazy?: boolean | undefined;
            readonly params?: Recordable | undefined;
            readonly loadData?: boolean | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        $attrs: Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            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;
        };
        $slots: Readonly<{
            [name: string]: Slot<any> | undefined;
        }>;
        $root: ComponentPublicInstance | null;
        $parent: ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "update:value", ...args: any[]) => void;
        $el: any;
        $options: ComponentOptionsBase<Readonly< ApFieldTreeSelectProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, {
            blur: () => void;
            focus: () => void;
            request: (currentNode?: LegacyDataNode, clear?: boolean) => Promise<void>;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            "update:value": (...args: any[]) => void;
        }, string, {
            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, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
    } & Readonly<{
        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;
    }> & Omit<Readonly< ApFieldTreeSelectProps> & Readonly<{
        "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    }>, "blur" | "focus" | "request" | ("mode" | "open" | "multiple" | "disabled" | "virtual" | "dropdownMatchSelectWidth" | "autofocus" | "loading" | "bordered" | "allowClear" | "showArrow" | "autoClearSearchValue" | "labelInValue" | "showSearch" | "defaultOpen" | "emptyText" | "treeCheckable" | "treeCheckStrictly" | "treeDefaultExpandAll")> & {
        blur: () => void;
        focus: () => void;
        request: (currentNode?: LegacyDataNode, clear?: boolean) => Promise<void>;
    } & {} & ComponentCustomProperties & {} & {
        $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;
        };
    }) | 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;
    };
};
