import { Component, ComponentInternalInstance, PropType } from 'vue';
import { default as Node } from './model/node.js';
import { AllowDragFunction, AllowDropFunction, CheckedInfo, FilterNodeMethodFunction, LoadFunction, NodeDropType, RenderContentFunction, TreeData, TreeDragPayload, TreeKey, TreeNodeData, TreeOptionProps } from './tree.type.js';
export interface TreeProps {
    data?: TreeData;
    emptyText?: string;
    renderAfterExpand?: boolean;
    nodeKey?: string;
    checkStrictly?: boolean;
    checkDescendants?: boolean;
    defaultExpandAll?: boolean;
    expandOnClickNode?: boolean;
    checkOnClickNode?: boolean;
    checkOnClickLeaf?: boolean;
    autoExpandParent?: boolean;
    defaultCheckedKeys?: TreeKey[];
    defaultExpandedKeys?: TreeKey[];
    currentNodeKey?: TreeKey | null;
    renderContent?: RenderContentFunction;
    showCheckbox?: boolean;
    props?: TreeOptionProps;
    lazy?: boolean;
    draggable?: boolean;
    allowDrag?: AllowDragFunction;
    allowDrop?: AllowDropFunction;
    highlightCurrent?: boolean;
    load?: LoadFunction;
    filterNodeMethod?: FilterNodeMethodFunction;
    accordion?: boolean;
    indent?: number;
    icon?: string | Component;
}
export type TreeNodeClickHandler = (data: TreeNodeData, node: Node, nodeInstance: ComponentInternalInstance | null, event: MouseEvent) => void;
export type TreeNodeContextmenuHandler = (event: Event, data: TreeNodeData, node: Node, nodeInstance: ComponentInternalInstance | null) => void;
export type TreeCurrentChangeHandler = (data: TreeNodeData | null, node: Node | null) => void;
export type TreeNodeExpandHandler = (data: TreeNodeData, node: Node, nodeInstance: ComponentInternalInstance | null) => void;
export type TreeNodeCollapseHandler = (data: TreeNodeData, node: Node, nodeInstance: ComponentInternalInstance | null) => void;
export type TreeNodeDragStartHandler = (draggingNode: Node, event: DragEvent) => void;
export type TreeNodeDragEnterHandler = (draggingNode: Node, dropNode: Node, event: DragEvent) => void;
export type TreeNodeDragLeaveHandler = (draggingNode: Node, dropNode: Node, event: DragEvent) => void;
export type TreeNodeDragOverHandler = (draggingNode: Node, dropNode: Node, event: DragEvent) => void;
export type TreeNodeDragEndHandler = (draggingNode: Node, dropNode: Node | null, dropType: NodeDropType, event: DragEvent, detail: TreeDragPayload) => void;
export type TreeNodeDropHandler = (draggingNode: Node, dropNode: Node, dropType: Exclude<NodeDropType, "none">, event: DragEvent, detail: TreeDragPayload) => void;
export type TreeCheckChangeHandler = (data: TreeNodeData, checked: boolean, indeterminate: boolean) => void;
export type TreeCheckHandler = (data: TreeNodeData, checkedInfo: CheckedInfo) => void;
export declare const DEFAULT_TREE_EMPTY_TEXT = "\u6682\u65E0\u6570\u636E";
export declare const DEFAULT_TREE_EXPAND_ICON = "mdi:chevron-right";
export declare const DEFAULT_TREE_LOADING_ICON = "mdi:loading";
export declare const treeProps: {
    readonly data: {
        readonly type: PropType<TreeData>;
        readonly default: () => never[];
    };
    readonly emptyText: {
        readonly type: StringConstructor;
        readonly default: "暂无数据";
    };
    readonly renderAfterExpand: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly nodeKey: {
        readonly type: StringConstructor;
        readonly default: undefined;
    };
    readonly checkStrictly: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly checkDescendants: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly defaultExpandAll: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly expandOnClickNode: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly checkOnClickNode: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly checkOnClickLeaf: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly autoExpandParent: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly defaultCheckedKeys: {
        readonly type: PropType<TreeKey[]>;
        readonly default: undefined;
    };
    readonly defaultExpandedKeys: {
        readonly type: PropType<TreeKey[]>;
        readonly default: undefined;
    };
    readonly currentNodeKey: {
        readonly type: PropType<TreeKey | null>;
        readonly default: undefined;
    };
    readonly renderContent: {
        readonly type: PropType<RenderContentFunction>;
        readonly default: undefined;
    };
    readonly showCheckbox: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly props: {
        readonly type: PropType<TreeOptionProps>;
        readonly default: () => TreeOptionProps;
    };
    readonly lazy: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly draggable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly allowDrag: {
        readonly type: PropType<AllowDragFunction>;
        readonly default: undefined;
    };
    readonly allowDrop: {
        readonly type: PropType<AllowDropFunction>;
        readonly default: undefined;
    };
    readonly highlightCurrent: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly load: {
        readonly type: PropType<LoadFunction>;
        readonly default: undefined;
    };
    readonly filterNodeMethod: {
        readonly type: PropType<FilterNodeMethodFunction>;
        readonly default: undefined;
    };
    readonly accordion: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly indent: {
        readonly type: NumberConstructor;
        readonly default: 18;
    };
    readonly icon: {
        readonly type: PropType<string | Component>;
        readonly default: "mdi:chevron-right";
    };
};
export declare const treeEmits: {
    readonly "check-change": (_data: TreeNodeData, _checked: boolean, _indeterminate: boolean) => boolean;
    readonly "current-change": (_data: TreeNodeData | null, _node: Node | null) => boolean;
    readonly "node-click": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null, _event: MouseEvent) => boolean;
    readonly "node-contextmenu": (_event: Event, _data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => boolean;
    readonly "node-collapse": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => boolean;
    readonly "node-expand": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => boolean;
    readonly "node-drag-start": (_node: Node, _event: DragEvent) => boolean;
    readonly "node-drag-enter": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => boolean;
    readonly "node-drag-leave": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => boolean;
    readonly "node-drag-over": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => boolean;
    readonly "node-drag-end": (_draggingNode: Node, _dropNode: Node | null, _dropType: NodeDropType, _event: DragEvent, _detail: TreeDragPayload) => boolean;
    readonly "node-drop": (_draggingNode: Node, _dropNode: Node, _dropType: Exclude<NodeDropType, "none">, _event: DragEvent, _detail: TreeDragPayload) => boolean;
    readonly check: (_data: TreeNodeData, _checkedInfo: CheckedInfo) => boolean;
};
