import { App, DefineComponent, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, CreateComponentPublicInstanceWithMixins, CSSProperties, GlobalComponents, GlobalDirectives, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import { default as DirectoryTree, ExpandAction } from './DirectoryTree';
import { VueTypeValidableDef } from 'vue-types';
import { DataNode, EventDataNode } from '.';
import { EventHandler } from '../_util/EventInterface';
import { Key, FieldNames, Direction } from '../vc-tree/interface';
import { AntdTreeNodeAttribute } from './Tree';
import { NodeMouseEventHandler, NodeMouseEventParams, NodeDragEventParams } from '../vc-tree/contextTypes';
import { ExpandAction, AllowDrop, CheckInfo } from '../vc-tree/props';
import { VueNode, CustomSlotsType } from '../_util/type';
export type { DataNode, EventDataNode } from '../vc-tree/interface';
export type { AntdTreeNodeAttribute, AntTreeNodeCheckedEvent, AntTreeNodeDragEnterEvent, AntTreeNodeDropEvent, AntTreeNodeExpandedEvent, AntTreeNodeMouseEvent, AntTreeNodeSelectedEvent, TreeDataItem, TreeProps, } from './Tree';
export type { ExpandAction as DirectoryTreeExpandAction, DirectoryTreeProps } from './DirectoryTree';
declare const TreeNode: DefineComponent<ExtractPropTypes<{
    eventKey: (StringConstructor | NumberConstructor)[];
    prefixCls: StringConstructor;
    title: VueTypeValidableDef<any>;
    data: {
        type: PropType<DataNode>;
        default: DataNode;
    };
    parent: {
        type: PropType<DataNode>;
        default: DataNode;
    };
    isStart: {
        type: PropType<boolean[]>;
    };
    isEnd: {
        type: PropType<boolean[]>;
    };
    active: {
        type: BooleanConstructor;
        default: undefined;
    };
    onMousemove: {
        type: PropType<EventHandler>;
    };
    isLeaf: {
        type: BooleanConstructor;
        default: undefined;
    };
    checkable: {
        type: BooleanConstructor;
        default: undefined;
    };
    selectable: {
        type: BooleanConstructor;
        default: undefined;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    disableCheckbox: {
        type: BooleanConstructor;
        default: undefined;
    };
    icon: VueTypeValidableDef<any>;
    switcherIcon: VueTypeValidableDef<any>;
    domRef: {
        type: PropType<(arg: any) => void>;
    };
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
    eventKey: (StringConstructor | NumberConstructor)[];
    prefixCls: StringConstructor;
    title: VueTypeValidableDef<any>;
    data: {
        type: PropType<DataNode>;
        default: DataNode;
    };
    parent: {
        type: PropType<DataNode>;
        default: DataNode;
    };
    isStart: {
        type: PropType<boolean[]>;
    };
    isEnd: {
        type: PropType<boolean[]>;
    };
    active: {
        type: BooleanConstructor;
        default: undefined;
    };
    onMousemove: {
        type: PropType<EventHandler>;
    };
    isLeaf: {
        type: BooleanConstructor;
        default: undefined;
    };
    checkable: {
        type: BooleanConstructor;
        default: undefined;
    };
    selectable: {
        type: BooleanConstructor;
        default: undefined;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    disableCheckbox: {
        type: BooleanConstructor;
        default: undefined;
    };
    icon: VueTypeValidableDef<any>;
    switcherIcon: VueTypeValidableDef<any>;
    domRef: {
        type: PropType<(arg: any) => void>;
    };
}>> & Readonly<{}>, {
    data: DataNode;
    active: boolean;
    disabled: boolean;
    parent: DataNode;
    isLeaf: boolean;
    checkable: boolean;
    selectable: boolean;
    disableCheckbox: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export { DirectoryTree, TreeNode };
declare const _default: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
        showLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkStrictly: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkable: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        expandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        checkedKeys: {
            type: PropType< Key[] | {
                checked: Key[];
                halfChecked: Key[];
            }>;
            default: Key[] | {
                checked: Key[];
                halfChecked: Key[];
            };
        };
        defaultCheckedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        defaultSelectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectable: {
            type: BooleanConstructor;
            default: boolean;
        };
        loadedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        showIcon: {
            type: BooleanConstructor;
            default: boolean;
        };
        icon: {
            type: PropType<(nodeProps: AntdTreeNodeAttribute) => any>;
            default: (nodeProps: AntdTreeNodeAttribute) => any;
        };
        switcherIcon: VueTypeValidableDef<any>;
        prefixCls: StringConstructor;
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        blockNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        openAnimation: VueTypeValidableDef<any>;
        onDoubleclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        'onUpdate:selectedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:checkedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:expandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        focusable: {
            type: BooleanConstructor;
            default: undefined;
        };
        activeKey: PropType<Key>;
        tabindex: NumberConstructor;
        children: VueTypeValidableDef<any>;
        treeData: {
            type: PropType< DataNode[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        expandAction: PropType<ExpandAction>;
        allowDrop: {
            type: PropType<AllowDrop>;
        };
        dropIndicatorRender: {
            type: PropType<(props: {
                dropPosition: -1 | 0 | 1;
                dropLevelOffset: number;
                indent: number;
                prefixCls: string;
                direction: Direction;
            }) => any>;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onKeydown: {
            type: PropType<EventHandler>;
        };
        onContextmenu: {
            type: PropType<EventHandler>;
        };
        onClick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onDblclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onScroll: {
            type: PropType<EventHandler>;
        };
        onExpand: {
            type: PropType<(expandedKeys: Key[], info: {
                node: EventDataNode;
                expanded: boolean;
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onCheck: {
            type: PropType<(checked: {
                checked: Key[];
                halfChecked: Key[];
            } | Key[], info: CheckInfo) => void>;
        };
        onSelect: {
            type: PropType<(selectedKeys: Key[], info: {
                event: "select";
                selected: boolean;
                node: EventDataNode;
                selectedNodes: DataNode[];
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onLoad: {
            type: PropType<(loadedKeys: Key[], info: {
                event: "load";
                node: EventDataNode;
            }) => void>;
        };
        loadData: {
            type: PropType<(treeNode: EventDataNode) => Promise<any>>;
        };
        onMouseenter: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onMouseleave: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onRightClick: {
            type: PropType<(info: {
                event: MouseEvent;
                node: EventDataNode;
            }) => void>;
        };
        onDragstart: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragenter: {
            type: PropType<(info: NodeDragEventParams & {
                expandedKeys: Key[];
            }) => void>;
        };
        onDragover: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragleave: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragend: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDrop: {
            type: PropType<(info: NodeDragEventParams & {
                dragNode: EventDataNode;
                dragNodesKeys: Key[];
                dropPosition: number;
                dropToGap: boolean;
            }) => void>;
        };
        onActiveChange: {
            type: PropType<(key: Key) => void>;
        };
        filterTreeNode: {
            type: PropType<(treeNode: EventDataNode) => boolean>;
        };
        motion: VueTypeValidableDef<any>;
        height: NumberConstructor;
        itemHeight: NumberConstructor;
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        direction: {
            type: PropType<Direction>;
        };
        rootClassName: StringConstructor;
        rootStyle: PropType<CSSProperties>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        icon: (nodeProps: AntdTreeNodeAttribute) => any;
        multiple: boolean;
        disabled: boolean;
        draggable: boolean;
        virtual: boolean;
        checkable: boolean;
        selectable: boolean;
        focusable: boolean;
        showLine: boolean | {
            showLeafIcon: boolean;
        };
        showIcon: boolean;
        checkStrictly: boolean;
        defaultExpandParent: boolean;
        autoExpandParent: boolean;
        defaultExpandAll: boolean;
        defaultExpandedKeys: Key[];
        expandedKeys: Key[];
        defaultCheckedKeys: Key[];
        checkedKeys: Key[] | {
            checked: Key[];
            halfChecked: Key[];
        };
        defaultSelectedKeys: Key[];
        selectedKeys: Key[];
        loadedKeys: Key[];
        replaceFields: FieldNames;
        blockNode: boolean;
        'onUpdate:selectedKeys': (keys: Key[]) => void;
        'onUpdate:checkedKeys': (keys: Key[]) => void;
        'onUpdate:expandedKeys': (keys: Key[]) => void;
    }, true, {}, CustomSlotsType<{
        icon?: any;
        title?: any;
        switcherIcon?: any;
        titleRender?: any;
        default?: any;
        leafIcon?: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        showLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkStrictly: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkable: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        expandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        checkedKeys: {
            type: PropType< Key[] | {
                checked: Key[];
                halfChecked: Key[];
            }>;
            default: Key[] | {
                checked: Key[];
                halfChecked: Key[];
            };
        };
        defaultCheckedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        defaultSelectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectable: {
            type: BooleanConstructor;
            default: boolean;
        };
        loadedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        showIcon: {
            type: BooleanConstructor;
            default: boolean;
        };
        icon: {
            type: PropType<(nodeProps: AntdTreeNodeAttribute) => any>;
            default: (nodeProps: AntdTreeNodeAttribute) => any;
        };
        switcherIcon: VueTypeValidableDef<any>;
        prefixCls: StringConstructor;
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        blockNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        openAnimation: VueTypeValidableDef<any>;
        onDoubleclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        'onUpdate:selectedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:checkedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:expandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        focusable: {
            type: BooleanConstructor;
            default: undefined;
        };
        activeKey: PropType<Key>;
        tabindex: NumberConstructor;
        children: VueTypeValidableDef<any>;
        treeData: {
            type: PropType< DataNode[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        expandAction: PropType<ExpandAction>;
        allowDrop: {
            type: PropType<AllowDrop>;
        };
        dropIndicatorRender: {
            type: PropType<(props: {
                dropPosition: -1 | 0 | 1;
                dropLevelOffset: number;
                indent: number;
                prefixCls: string;
                direction: Direction;
            }) => any>;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onKeydown: {
            type: PropType<EventHandler>;
        };
        onContextmenu: {
            type: PropType<EventHandler>;
        };
        onClick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onDblclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onScroll: {
            type: PropType<EventHandler>;
        };
        onExpand: {
            type: PropType<(expandedKeys: Key[], info: {
                node: EventDataNode;
                expanded: boolean;
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onCheck: {
            type: PropType<(checked: {
                checked: Key[];
                halfChecked: Key[];
            } | Key[], info: CheckInfo) => void>;
        };
        onSelect: {
            type: PropType<(selectedKeys: Key[], info: {
                event: "select";
                selected: boolean;
                node: EventDataNode;
                selectedNodes: DataNode[];
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onLoad: {
            type: PropType<(loadedKeys: Key[], info: {
                event: "load";
                node: EventDataNode;
            }) => void>;
        };
        loadData: {
            type: PropType<(treeNode: EventDataNode) => Promise<any>>;
        };
        onMouseenter: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onMouseleave: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onRightClick: {
            type: PropType<(info: {
                event: MouseEvent;
                node: EventDataNode;
            }) => void>;
        };
        onDragstart: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragenter: {
            type: PropType<(info: NodeDragEventParams & {
                expandedKeys: Key[];
            }) => void>;
        };
        onDragover: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragleave: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragend: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDrop: {
            type: PropType<(info: NodeDragEventParams & {
                dragNode: EventDataNode;
                dragNodesKeys: Key[];
                dropPosition: number;
                dropToGap: boolean;
            }) => void>;
        };
        onActiveChange: {
            type: PropType<(key: Key) => void>;
        };
        filterTreeNode: {
            type: PropType<(treeNode: EventDataNode) => boolean>;
        };
        motion: VueTypeValidableDef<any>;
        height: NumberConstructor;
        itemHeight: NumberConstructor;
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        direction: {
            type: PropType<Direction>;
        };
        rootClassName: StringConstructor;
        rootStyle: PropType<CSSProperties>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        icon: (nodeProps: AntdTreeNodeAttribute) => any;
        multiple: boolean;
        disabled: boolean;
        draggable: boolean;
        virtual: boolean;
        checkable: boolean;
        selectable: boolean;
        focusable: boolean;
        showLine: boolean | {
            showLeafIcon: boolean;
        };
        showIcon: boolean;
        checkStrictly: boolean;
        defaultExpandParent: boolean;
        autoExpandParent: boolean;
        defaultExpandAll: boolean;
        defaultExpandedKeys: Key[];
        expandedKeys: Key[];
        defaultCheckedKeys: Key[];
        checkedKeys: Key[] | {
            checked: Key[];
            halfChecked: Key[];
        };
        defaultSelectedKeys: Key[];
        selectedKeys: Key[];
        loadedKeys: Key[];
        replaceFields: FieldNames;
        blockNode: boolean;
        'onUpdate:selectedKeys': (keys: Key[]) => void;
        'onUpdate:checkedKeys': (keys: Key[]) => void;
        'onUpdate:expandedKeys': (keys: Key[]) => void;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly< ExtractPropTypes<{
    showLine: {
        type: PropType<boolean | {
            showLeafIcon: boolean;
        }>;
        default: boolean | {
            showLeafIcon: boolean;
        };
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoExpandParent: {
        type: BooleanConstructor;
        default: boolean;
    };
    checkStrictly: {
        type: BooleanConstructor;
        default: boolean;
    };
    checkable: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultExpandAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultExpandParent: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultExpandedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    expandedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    checkedKeys: {
        type: PropType< Key[] | {
            checked: Key[];
            halfChecked: Key[];
        }>;
        default: Key[] | {
            checked: Key[];
            halfChecked: Key[];
        };
    };
    defaultCheckedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    selectedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    defaultSelectedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    selectable: {
        type: BooleanConstructor;
        default: boolean;
    };
    loadedKeys: {
        type: PropType< Key[]>;
        default: Key[];
    };
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    icon: {
        type: PropType<(nodeProps: AntdTreeNodeAttribute) => any>;
        default: (nodeProps: AntdTreeNodeAttribute) => any;
    };
    switcherIcon: VueTypeValidableDef<any>;
    prefixCls: StringConstructor;
    replaceFields: {
        type: PropType<FieldNames>;
        default: FieldNames;
    };
    blockNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    openAnimation: VueTypeValidableDef<any>;
    onDoubleclick: {
        type: PropType<NodeMouseEventHandler>;
    };
    'onUpdate:selectedKeys': {
        type: PropType<(keys: Key[]) => void>;
        default: (keys: Key[]) => void;
    };
    'onUpdate:checkedKeys': {
        type: PropType<(keys: Key[]) => void>;
        default: (keys: Key[]) => void;
    };
    'onUpdate:expandedKeys': {
        type: PropType<(keys: Key[]) => void>;
        default: (keys: Key[]) => void;
    };
    focusable: {
        type: BooleanConstructor;
        default: undefined;
    };
    activeKey: PropType<Key>;
    tabindex: NumberConstructor;
    children: VueTypeValidableDef<any>;
    treeData: {
        type: PropType< DataNode[]>;
    };
    fieldNames: {
        type: PropType<FieldNames>;
    };
    expandAction: PropType<ExpandAction>;
    allowDrop: {
        type: PropType<AllowDrop>;
    };
    dropIndicatorRender: {
        type: PropType<(props: {
            dropPosition: -1 | 0 | 1;
            dropLevelOffset: number;
            indent: number;
            prefixCls: string;
            direction: Direction;
        }) => any>;
    };
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onKeydown: {
        type: PropType<EventHandler>;
    };
    onContextmenu: {
        type: PropType<EventHandler>;
    };
    onClick: {
        type: PropType<NodeMouseEventHandler>;
    };
    onDblclick: {
        type: PropType<NodeMouseEventHandler>;
    };
    onScroll: {
        type: PropType<EventHandler>;
    };
    onExpand: {
        type: PropType<(expandedKeys: Key[], info: {
            node: EventDataNode;
            expanded: boolean;
            nativeEvent: MouseEvent;
        }) => void>;
    };
    onCheck: {
        type: PropType<(checked: {
            checked: Key[];
            halfChecked: Key[];
        } | Key[], info: CheckInfo) => void>;
    };
    onSelect: {
        type: PropType<(selectedKeys: Key[], info: {
            event: "select";
            selected: boolean;
            node: EventDataNode;
            selectedNodes: DataNode[];
            nativeEvent: MouseEvent;
        }) => void>;
    };
    onLoad: {
        type: PropType<(loadedKeys: Key[], info: {
            event: "load";
            node: EventDataNode;
        }) => void>;
    };
    loadData: {
        type: PropType<(treeNode: EventDataNode) => Promise<any>>;
    };
    onMouseenter: {
        type: PropType<(info: NodeMouseEventParams) => void>;
    };
    onMouseleave: {
        type: PropType<(info: NodeMouseEventParams) => void>;
    };
    onRightClick: {
        type: PropType<(info: {
            event: MouseEvent;
            node: EventDataNode;
        }) => void>;
    };
    onDragstart: {
        type: PropType<(info: NodeDragEventParams) => void>;
    };
    onDragenter: {
        type: PropType<(info: NodeDragEventParams & {
            expandedKeys: Key[];
        }) => void>;
    };
    onDragover: {
        type: PropType<(info: NodeDragEventParams) => void>;
    };
    onDragleave: {
        type: PropType<(info: NodeDragEventParams) => void>;
    };
    onDragend: {
        type: PropType<(info: NodeDragEventParams) => void>;
    };
    onDrop: {
        type: PropType<(info: NodeDragEventParams & {
            dragNode: EventDataNode;
            dragNodesKeys: Key[];
            dropPosition: number;
            dropToGap: boolean;
        }) => void>;
    };
    onActiveChange: {
        type: PropType<(key: Key) => void>;
    };
    filterTreeNode: {
        type: PropType<(treeNode: EventDataNode) => boolean>;
    };
    motion: VueTypeValidableDef<any>;
    height: NumberConstructor;
    itemHeight: NumberConstructor;
    virtual: {
        type: BooleanConstructor;
        default: undefined;
    };
    direction: {
        type: PropType<Direction>;
    };
    rootClassName: StringConstructor;
    rootStyle: PropType<CSSProperties>;
}>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
    icon: (nodeProps: AntdTreeNodeAttribute) => any;
    multiple: boolean;
    disabled: boolean;
    draggable: boolean;
    virtual: boolean;
    checkable: boolean;
    selectable: boolean;
    focusable: boolean;
    showLine: boolean | {
        showLeafIcon: boolean;
    };
    showIcon: boolean;
    checkStrictly: boolean;
    defaultExpandParent: boolean;
    autoExpandParent: boolean;
    defaultExpandAll: boolean;
    defaultExpandedKeys: Key[];
    expandedKeys: Key[];
    defaultCheckedKeys: Key[];
    checkedKeys: Key[] | {
        checked: Key[];
        halfChecked: Key[];
    };
    defaultSelectedKeys: Key[];
    selectedKeys: Key[];
    loadedKeys: Key[];
    replaceFields: FieldNames;
    blockNode: boolean;
    'onUpdate:selectedKeys': (keys: Key[]) => void;
    'onUpdate:checkedKeys': (keys: Key[]) => void;
    'onUpdate:expandedKeys': (keys: Key[]) => void;
}, {}, string, CustomSlotsType<{
    icon?: any;
    title?: any;
    switcherIcon?: any;
    titleRender?: any;
    default?: any;
    leafIcon?: any;
}>, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
    DirectoryTree: DefineComponent<ExtractPropTypes<{
        expandAction: {
            type: PropType<ExpandAction>;
            default: ExpandAction;
        };
        showLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkStrictly: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkable: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        expandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        checkedKeys: {
            type: PropType< Key[] | {
                checked: Key[];
                halfChecked: Key[];
            }>;
            default: Key[] | {
                checked: Key[];
                halfChecked: Key[];
            };
        };
        defaultCheckedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        defaultSelectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectable: {
            type: BooleanConstructor;
            default: boolean;
        };
        loadedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        showIcon: {
            type: BooleanConstructor;
            default: boolean;
        };
        icon: {
            type: PropType<(nodeProps: AntdTreeNodeAttribute) => any>;
            default: (nodeProps: AntdTreeNodeAttribute) => any;
        };
        switcherIcon: VueTypeValidableDef<any>;
        prefixCls: StringConstructor;
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        blockNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        openAnimation: VueTypeValidableDef<any>;
        onDoubleclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        'onUpdate:selectedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:checkedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:expandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        focusable: {
            type: BooleanConstructor;
            default: undefined;
        };
        activeKey: PropType<Key>;
        tabindex: NumberConstructor;
        children: VueTypeValidableDef<any>;
        treeData: {
            type: PropType< DataNode[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        allowDrop: {
            type: PropType<AllowDrop>;
        };
        dropIndicatorRender: {
            type: PropType<(props: {
                dropPosition: -1 | 0 | 1;
                dropLevelOffset: number;
                indent: number;
                prefixCls: string;
                direction: Direction;
            }) => any>;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onKeydown: {
            type: PropType<EventHandler>;
        };
        onContextmenu: {
            type: PropType<EventHandler>;
        };
        onClick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onDblclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onScroll: {
            type: PropType<EventHandler>;
        };
        onExpand: {
            type: PropType<(expandedKeys: Key[], info: {
                node: EventDataNode;
                expanded: boolean;
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onCheck: {
            type: PropType<(checked: {
                checked: Key[];
                halfChecked: Key[];
            } | Key[], info: CheckInfo) => void>;
        };
        onSelect: {
            type: PropType<(selectedKeys: Key[], info: {
                event: "select";
                selected: boolean;
                node: EventDataNode;
                selectedNodes: DataNode[];
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onLoad: {
            type: PropType<(loadedKeys: Key[], info: {
                event: "load";
                node: EventDataNode;
            }) => void>;
        };
        loadData: {
            type: PropType<(treeNode: EventDataNode) => Promise<any>>;
        };
        onMouseenter: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onMouseleave: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onRightClick: {
            type: PropType<(info: {
                event: MouseEvent;
                node: EventDataNode;
            }) => void>;
        };
        onDragstart: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragenter: {
            type: PropType<(info: NodeDragEventParams & {
                expandedKeys: Key[];
            }) => void>;
        };
        onDragover: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragleave: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragend: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDrop: {
            type: PropType<(info: NodeDragEventParams & {
                dragNode: EventDataNode;
                dragNodesKeys: Key[];
                dropPosition: number;
                dropToGap: boolean;
            }) => void>;
        };
        onActiveChange: {
            type: PropType<(key: Key) => void>;
        };
        filterTreeNode: {
            type: PropType<(treeNode: EventDataNode) => boolean>;
        };
        motion: VueTypeValidableDef<any>;
        height: NumberConstructor;
        itemHeight: NumberConstructor;
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        direction: {
            type: PropType<Direction>;
        };
        rootClassName: StringConstructor;
        rootStyle: PropType<CSSProperties>;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
        expandAction: {
            type: PropType<ExpandAction>;
            default: ExpandAction;
        };
        showLine: {
            type: PropType<boolean | {
                showLeafIcon: boolean;
            }>;
            default: boolean | {
                showLeafIcon: boolean;
            };
        };
        multiple: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkStrictly: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkable: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandAll: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultExpandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        expandedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        checkedKeys: {
            type: PropType< Key[] | {
                checked: Key[];
                halfChecked: Key[];
            }>;
            default: Key[] | {
                checked: Key[];
                halfChecked: Key[];
            };
        };
        defaultCheckedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        defaultSelectedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        selectable: {
            type: BooleanConstructor;
            default: boolean;
        };
        loadedKeys: {
            type: PropType< Key[]>;
            default: Key[];
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        showIcon: {
            type: BooleanConstructor;
            default: boolean;
        };
        icon: {
            type: PropType<(nodeProps: AntdTreeNodeAttribute) => any>;
            default: (nodeProps: AntdTreeNodeAttribute) => any;
        };
        switcherIcon: VueTypeValidableDef<any>;
        prefixCls: StringConstructor;
        replaceFields: {
            type: PropType<FieldNames>;
            default: FieldNames;
        };
        blockNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        openAnimation: VueTypeValidableDef<any>;
        onDoubleclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        'onUpdate:selectedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:checkedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        'onUpdate:expandedKeys': {
            type: PropType<(keys: Key[]) => void>;
            default: (keys: Key[]) => void;
        };
        focusable: {
            type: BooleanConstructor;
            default: undefined;
        };
        activeKey: PropType<Key>;
        tabindex: NumberConstructor;
        children: VueTypeValidableDef<any>;
        treeData: {
            type: PropType< DataNode[]>;
        };
        fieldNames: {
            type: PropType<FieldNames>;
        };
        allowDrop: {
            type: PropType<AllowDrop>;
        };
        dropIndicatorRender: {
            type: PropType<(props: {
                dropPosition: -1 | 0 | 1;
                dropLevelOffset: number;
                indent: number;
                prefixCls: string;
                direction: Direction;
            }) => any>;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onKeydown: {
            type: PropType<EventHandler>;
        };
        onContextmenu: {
            type: PropType<EventHandler>;
        };
        onClick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onDblclick: {
            type: PropType<NodeMouseEventHandler>;
        };
        onScroll: {
            type: PropType<EventHandler>;
        };
        onExpand: {
            type: PropType<(expandedKeys: Key[], info: {
                node: EventDataNode;
                expanded: boolean;
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onCheck: {
            type: PropType<(checked: {
                checked: Key[];
                halfChecked: Key[];
            } | Key[], info: CheckInfo) => void>;
        };
        onSelect: {
            type: PropType<(selectedKeys: Key[], info: {
                event: "select";
                selected: boolean;
                node: EventDataNode;
                selectedNodes: DataNode[];
                nativeEvent: MouseEvent;
            }) => void>;
        };
        onLoad: {
            type: PropType<(loadedKeys: Key[], info: {
                event: "load";
                node: EventDataNode;
            }) => void>;
        };
        loadData: {
            type: PropType<(treeNode: EventDataNode) => Promise<any>>;
        };
        onMouseenter: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onMouseleave: {
            type: PropType<(info: NodeMouseEventParams) => void>;
        };
        onRightClick: {
            type: PropType<(info: {
                event: MouseEvent;
                node: EventDataNode;
            }) => void>;
        };
        onDragstart: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragenter: {
            type: PropType<(info: NodeDragEventParams & {
                expandedKeys: Key[];
            }) => void>;
        };
        onDragover: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragleave: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDragend: {
            type: PropType<(info: NodeDragEventParams) => void>;
        };
        onDrop: {
            type: PropType<(info: NodeDragEventParams & {
                dragNode: EventDataNode;
                dragNodesKeys: Key[];
                dropPosition: number;
                dropToGap: boolean;
            }) => void>;
        };
        onActiveChange: {
            type: PropType<(key: Key) => void>;
        };
        filterTreeNode: {
            type: PropType<(treeNode: EventDataNode) => boolean>;
        };
        motion: VueTypeValidableDef<any>;
        height: NumberConstructor;
        itemHeight: NumberConstructor;
        virtual: {
            type: BooleanConstructor;
            default: undefined;
        };
        direction: {
            type: PropType<Direction>;
        };
        rootClassName: StringConstructor;
        rootStyle: PropType<CSSProperties>;
    }>> & Readonly<{}>, {
        icon: (nodeProps: AntdTreeNodeAttribute) => any;
        multiple: boolean;
        disabled: boolean;
        draggable: boolean;
        virtual: boolean;
        checkable: boolean;
        selectable: boolean;
        focusable: boolean;
        showLine: boolean | {
            showLeafIcon: boolean;
        };
        showIcon: boolean;
        expandAction: ExpandAction;
        checkStrictly: boolean;
        defaultExpandParent: boolean;
        autoExpandParent: boolean;
        defaultExpandAll: boolean;
        defaultExpandedKeys: Key[];
        expandedKeys: Key[];
        defaultCheckedKeys: Key[];
        checkedKeys: Key[] | {
            checked: Key[];
            halfChecked: Key[];
        };
        defaultSelectedKeys: Key[];
        selectedKeys: Key[];
        loadedKeys: Key[];
        replaceFields: FieldNames;
        blockNode: boolean;
        'onUpdate:selectedKeys': (keys: Key[]) => void;
        'onUpdate:checkedKeys': (keys: Key[]) => void;
        'onUpdate:expandedKeys': (keys: Key[]) => void;
    }, CustomSlotsType<{
        icon?: any;
        title?: any;
        switcherIcon?: any;
        titleRender?: any;
        default?: any;
    }>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
    TreeNode: DefineComponent<ExtractPropTypes<{
        eventKey: (StringConstructor | NumberConstructor)[];
        prefixCls: StringConstructor;
        title: VueTypeValidableDef<any>;
        data: {
            type: PropType<DataNode>;
            default: DataNode;
        };
        parent: {
            type: PropType<DataNode>;
            default: DataNode;
        };
        isStart: {
            type: PropType<boolean[]>;
        };
        isEnd: {
            type: PropType<boolean[]>;
        };
        active: {
            type: BooleanConstructor;
            default: undefined;
        };
        onMousemove: {
            type: PropType<EventHandler>;
        };
        isLeaf: {
            type: BooleanConstructor;
            default: undefined;
        };
        checkable: {
            type: BooleanConstructor;
            default: undefined;
        };
        selectable: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        disableCheckbox: {
            type: BooleanConstructor;
            default: undefined;
        };
        icon: VueTypeValidableDef<any>;
        switcherIcon: VueTypeValidableDef<any>;
        domRef: {
            type: PropType<(arg: any) => void>;
        };
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
        eventKey: (StringConstructor | NumberConstructor)[];
        prefixCls: StringConstructor;
        title: VueTypeValidableDef<any>;
        data: {
            type: PropType<DataNode>;
            default: DataNode;
        };
        parent: {
            type: PropType<DataNode>;
            default: DataNode;
        };
        isStart: {
            type: PropType<boolean[]>;
        };
        isEnd: {
            type: PropType<boolean[]>;
        };
        active: {
            type: BooleanConstructor;
            default: undefined;
        };
        onMousemove: {
            type: PropType<EventHandler>;
        };
        isLeaf: {
            type: BooleanConstructor;
            default: undefined;
        };
        checkable: {
            type: BooleanConstructor;
            default: undefined;
        };
        selectable: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        disableCheckbox: {
            type: BooleanConstructor;
            default: undefined;
        };
        icon: VueTypeValidableDef<any>;
        switcherIcon: VueTypeValidableDef<any>;
        domRef: {
            type: PropType<(arg: any) => void>;
        };
    }>> & Readonly<{}>, {
        data: DataNode;
        active: boolean;
        disabled: boolean;
        parent: DataNode;
        isLeaf: boolean;
        checkable: boolean;
        selectable: boolean;
        disableCheckbox: boolean;
    }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
    install: (app: App) => App<any>;
};
export default _default;
