import { default as Node } from './model/node.js';
import { TreeKey, TreeNodeData, TreeData, RenderContentFunction, TreeOptionProps, AllowDragFunction, AllowDropFunction, LoadFunction, FilterNodeMethodFunction, FilterValue, CheckedInfo, NodeDropType, TreeDragPayload } from './tree.type.js';
import { DefineComponent, ExtractPropTypes, PropType, Component, ComponentOptionsMixin, ComponentInternalInstance, PublicProps, ComponentProvideOptions } from 'vue';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        empty?(_: {}): any;
    };
    refs: {
        treeRef: HTMLDivElement;
        dropIndicatorRef: HTMLDivElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ExtractPropTypes<{
    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";
    };
}>, {
    filter: (value: FilterValue) => void;
    updateKeyChildren: (key: TreeKey, data: TreeNodeData[]) => void;
    getNodePath: (data: TreeKey | TreeNodeData) => TreeNodeData[];
    getCheckedNodes: (leafOnly?: boolean, includeHalfChecked?: boolean) => TreeNodeData[];
    setCheckedNodes: (nodes: TreeNodeData[], leafOnly?: boolean) => void;
    getCheckedKeys: (leafOnly?: boolean) => TreeKey[];
    setCheckedKeys: (keys: TreeKey[], leafOnly?: boolean) => void;
    setChecked: (data: TreeKey | TreeNodeData, checked: boolean, deep: boolean) => void;
    getHalfCheckedNodes: () => TreeNodeData[];
    getHalfCheckedKeys: () => TreeKey[];
    getCurrentKey: () => TreeKey | null;
    getCurrentNode: () => TreeNodeData | null;
    setCurrentKey: (key?: TreeKey | null, shouldAutoExpandParent?: boolean) => void;
    setCurrentNode: (node: TreeKey | TreeNodeData | Node, shouldAutoExpandParent?: boolean) => void;
    getNode: (data: TreeKey | TreeNodeData) => Node | null;
    remove: (data: TreeNodeData | Node) => void;
    append: (data: TreeNodeData, parentNode?: TreeNodeData | TreeKey | Node) => void;
    insertBefore: (data: TreeNodeData, refNode: TreeKey | TreeNodeData | Node) => void;
    insertAfter: (data: TreeNodeData, refNode: TreeKey | TreeNodeData | Node) => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    check: (_data: TreeNodeData, _checkedInfo: CheckedInfo) => void;
    "current-change": (_data: TreeNodeData | null, _node: Node | null) => void;
    "node-drag-start": (_node: Node, _event: DragEvent) => void;
    "node-drag-leave": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => void;
    "node-drag-enter": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => void;
    "node-drag-over": (_draggingNode: Node, _dropNode: Node, _event: DragEvent) => void;
    "node-drag-end": (_draggingNode: Node, _dropNode: Node | null, _dropType: NodeDropType, _event: DragEvent, _detail: TreeDragPayload) => void;
    "node-drop": (_draggingNode: Node, _dropNode: Node, _dropType: "after" | "before" | "inner", _event: DragEvent, _detail: TreeDragPayload) => void;
    "node-expand": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => void;
    "check-change": (_data: TreeNodeData, _checked: boolean, _indeterminate: boolean) => void;
    "node-click": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null, _event: MouseEvent) => void;
    "node-contextmenu": (_event: Event, _data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => void;
    "node-collapse": (_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<{
    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";
    };
}>> & Readonly<{
    onCheck?: ((_data: TreeNodeData, _checkedInfo: CheckedInfo) => any) | undefined;
    "onCurrent-change"?: ((_data: TreeNodeData | null, _node: Node | null) => any) | undefined;
    "onNode-drag-start"?: ((_node: Node, _event: DragEvent) => any) | undefined;
    "onNode-drag-leave"?: ((_draggingNode: Node, _dropNode: Node, _event: DragEvent) => any) | undefined;
    "onNode-drag-enter"?: ((_draggingNode: Node, _dropNode: Node, _event: DragEvent) => any) | undefined;
    "onNode-drag-over"?: ((_draggingNode: Node, _dropNode: Node, _event: DragEvent) => any) | undefined;
    "onNode-drag-end"?: ((_draggingNode: Node, _dropNode: Node | null, _dropType: NodeDropType, _event: DragEvent, _detail: TreeDragPayload) => any) | undefined;
    "onNode-drop"?: ((_draggingNode: Node, _dropNode: Node, _dropType: "after" | "before" | "inner", _event: DragEvent, _detail: TreeDragPayload) => any) | undefined;
    "onNode-expand"?: ((_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => any) | undefined;
    "onCheck-change"?: ((_data: TreeNodeData, _checked: boolean, _indeterminate: boolean) => any) | undefined;
    "onNode-click"?: ((_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null, _event: MouseEvent) => any) | undefined;
    "onNode-contextmenu"?: ((_event: Event, _data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => any) | undefined;
    "onNode-collapse"?: ((_data: TreeNodeData, _node: Node, _nodeInstance: ComponentInternalInstance | null) => any) | undefined;
}>, {
    readonly load: LoadFunction;
    readonly data: TreeData;
    readonly props: TreeOptionProps;
    readonly indent: number;
    readonly icon: string | Component;
    readonly emptyText: string;
    readonly draggable: boolean;
    readonly lazy: boolean;
    readonly accordion: boolean;
    readonly checkStrictly: boolean;
    readonly defaultExpandAll: boolean;
    readonly filterNodeMethod: FilterNodeMethodFunction;
    readonly currentNodeKey: TreeKey | null;
    readonly defaultCheckedKeys: TreeKey[];
    readonly checkDescendants: boolean;
    readonly defaultExpandedKeys: TreeKey[];
    readonly autoExpandParent: boolean;
    readonly allowDrop: AllowDropFunction;
    readonly renderContent: RenderContentFunction;
    readonly renderAfterExpand: boolean;
    readonly showCheckbox: boolean;
    readonly nodeKey: string;
    readonly expandOnClickNode: boolean;
    readonly checkOnClickNode: boolean;
    readonly checkOnClickLeaf: boolean;
    readonly allowDrag: AllowDragFunction;
    readonly highlightCurrent: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {
    treeRef: HTMLDivElement;
    dropIndicatorRef: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
