import type { Translator } from 'element-plus';
import type { default } from 'element-plus/es/components/tree/src/model/node';
import type { TreeKey, TreeOptionProps, LoadFunction, FilterNodeMethodFunction, TreeNodeData, FakeNode, TreeNodeLoadedDefaultProps, TreeStoreNodesMap, TreeData } from 'element-plus/es/components/tree/src/tree.type';
import type { SFCWithInstall, Nullable } from 'element-plus/es/utils';
import type { Emitter, EventType } from 'mitt';
import type { DefineComponent, ComputedRef, ComputedOptions, MethodOptions, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, PropType, Component, Ref, ComponentInternalInstance, ExtractPropTypes } from 'vue';
import type { Project, Engine, INode } from '../..';
interface ITreeItem {
    id: string;
    label: string;
    nodeType: string;
    node: INode;
    children: ITreeItem[];
}
declare const _sfc_main: DefineComponent<{}, {
    project: Project;
    emitter: Emitter<Record<EventType, unknown>>;
    engine: Engine;
    emit: (event: "back", ...args: any[]) => void;
    getNodeType: (node: INode) => string;
    toTree: (nodes: INode[]) => ITreeItem[];
    tree: ComputedRef<ITreeItem[]>;
    handleDrop: (dragging: any, drop: any, type: any, ev: any) => void;
    allowDrag: (node: any) => boolean;
    allowDrop: (dragging: any, drop: any, type: any) => boolean | undefined;
    setVisible: (node: INode, visible: boolean) => void;
    setLock: (node: INode, lock: boolean) => void;
    handleCurrentChange: (current: any) => void;
    handleMouseOver: (e: any) => void;
    handleCopy: (node: INode) => void;
    handleRemove: (node: INode) => void;
    handleBack: () => void;
    Panel: DefineComponent<unknown, object, {}, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<unknown>, {}>;
    ElTree: SFCWithInstall<DefineComponent<{
        data: {
            type: ArrayConstructor;
            default: () => never[];
        };
        emptyText: {
            type: StringConstructor;
        };
        renderAfterExpand: {
            type: BooleanConstructor;
            default: boolean;
        };
        nodeKey: StringConstructor;
        checkStrictly: BooleanConstructor;
        defaultExpandAll: BooleanConstructor;
        expandOnClickNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkOnClickNode: BooleanConstructor;
        checkDescendants: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultCheckedKeys: PropType<TreeKey[]>;
        defaultExpandedKeys: PropType<TreeKey[]>;
        currentNodeKey: PropType<string | number>;
        renderContent: FunctionConstructor;
        showCheckbox: {
            type: BooleanConstructor;
            default: boolean;
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        allowDrag: FunctionConstructor;
        allowDrop: FunctionConstructor;
        props: {
            type: PropType<TreeOptionProps>;
            default: () => {
                children: string;
                label: string;
                disabled: string;
            };
        };
        lazy: {
            type: BooleanConstructor;
            default: boolean;
        };
        highlightCurrent: BooleanConstructor;
        load: PropType<LoadFunction>;
        filterNodeMethod: PropType<FilterNodeMethodFunction>;
        accordion: BooleanConstructor;
        indent: {
            type: NumberConstructor;
            default: number;
        };
        icon: {
            type: PropType<string | Component<any, any, any, ComputedOptions, MethodOptions>>;
        };
    }, {
        ns: {
            namespace: Ref<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        store: Ref<{
            currentNode: {
                id: number;
                text: string;
                checked: boolean;
                indeterminate: boolean;
                data: TreeNodeData;
                expanded: boolean;
                parent: any;
                visible: boolean;
                isCurrent: boolean;
                store: any;
                isLeafByUser: boolean;
                isLeaf: boolean;
                canFocus: boolean;
                level: number;
                loaded: boolean;
                childNodes: any[];
                loading: boolean;
                initialize: () => void;
                setData: (data: TreeNodeData) => void;
                readonly label: string;
                readonly key: TreeKey;
                readonly disabled: boolean;
                readonly nextSibling: any;
                readonly previousSibling: any;
                contains: (target: default, deep?: boolean | undefined) => boolean;
                remove: () => void;
                insertChild: (child?: default | FakeNode | undefined, index?: number | undefined, batch?: boolean | undefined) => void;
                insertBefore: (child: default | FakeNode, ref: default) => void;
                insertAfter: (child: default | FakeNode, ref: default) => void;
                removeChild: (child: default) => void;
                removeChildByData: (data: TreeNodeData) => void;
                expand: (callback?: (() => void) | undefined, expandParent?: boolean | undefined) => void;
                doCreateChildren: (array: TreeNodeData[], defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
                collapse: () => void;
                shouldLoadData: () => boolean;
                updateLeafState: () => void;
                setChecked: (value?: string | boolean | undefined, deep?: boolean | undefined, recursion?: boolean | undefined, passValue?: boolean | undefined) => void;
                getChildren: (forceInit?: boolean | undefined) => TreeNodeData | TreeNodeData[];
                updateChildren: () => void;
                loadData: (callback: (node: default) => void, defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
            };
            currentNodeKey: TreeKey;
            nodesMap: TreeStoreNodesMap;
            root: {
                id: number;
                text: string;
                checked: boolean;
                indeterminate: boolean;
                data: TreeNodeData;
                expanded: boolean;
                parent: any;
                visible: boolean;
                isCurrent: boolean;
                store: any;
                isLeafByUser: boolean;
                isLeaf: boolean;
                canFocus: boolean;
                level: number;
                loaded: boolean;
                childNodes: any[];
                loading: boolean;
                initialize: () => void;
                setData: (data: TreeNodeData) => void;
                readonly label: string;
                readonly key: TreeKey;
                readonly disabled: boolean;
                readonly nextSibling: any;
                readonly previousSibling: any;
                contains: (target: default, deep?: boolean | undefined) => boolean;
                remove: () => void;
                insertChild: (child?: default | FakeNode | undefined, index?: number | undefined, batch?: boolean | undefined) => void;
                insertBefore: (child: default | FakeNode, ref: default) => void;
                insertAfter: (child: default | FakeNode, ref: default) => void;
                removeChild: (child: default) => void;
                removeChildByData: (data: TreeNodeData) => void;
                expand: (callback?: (() => void) | undefined, expandParent?: boolean | undefined) => void;
                doCreateChildren: (array: TreeNodeData[], defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
                collapse: () => void;
                shouldLoadData: () => boolean;
                updateLeafState: () => void;
                setChecked: (value?: string | boolean | undefined, deep?: boolean | undefined, recursion?: boolean | undefined, passValue?: boolean | undefined) => void;
                getChildren: (forceInit?: boolean | undefined) => TreeNodeData | TreeNodeData[];
                updateChildren: () => void;
                loadData: (callback: (node: default) => void, defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
            };
            data: TreeNodeData[];
            lazy: boolean;
            load: LoadFunction;
            filterNodeMethod: FilterNodeMethodFunction;
            key: TreeKey;
            defaultCheckedKeys: TreeKey[];
            checkStrictly: boolean;
            defaultExpandedKeys: TreeKey[];
            autoExpandParent: boolean;
            defaultExpandAll: boolean;
            checkDescendants: boolean;
            props: {
                children?: string | undefined;
                label?: string | ((data: TreeNodeData, node: default) => string) | undefined;
                disabled?: string | ((data: TreeNodeData, node: default) => string) | undefined;
                isLeaf?: string | ((data: TreeNodeData, node: default) => boolean) | undefined;
                class?: ((data: TreeNodeData, node: default) => string | {
                    [key: string]: boolean;
                }) | undefined;
            };
            initialize: () => void;
            filter: (value: any) => void;
            setData: (newVal: TreeData) => void;
            getNode: (data: TreeKey | TreeNodeData) => default;
            insertBefore: (data: TreeNodeData, refData: TreeKey | TreeNodeData) => void;
            insertAfter: (data: TreeNodeData, refData: TreeKey | TreeNodeData) => void;
            remove: (data: TreeNodeData | default) => void;
            append: (data: TreeNodeData, parentData: TreeKey | TreeNodeData | default) => void;
            _initDefaultCheckedNodes: () => void;
            _initDefaultCheckedNode: (node: default) => void;
            setDefaultCheckedKey: (newVal: TreeKey[]) => void;
            registerNode: (node: default) => void;
            deregisterNode: (node: default) => void;
            getCheckedNodes: (leafOnly?: boolean | undefined, includeHalfChecked?: boolean | undefined) => TreeNodeData[];
            getCheckedKeys: (leafOnly?: boolean | undefined) => TreeKey[];
            getHalfCheckedNodes: () => TreeNodeData[];
            getHalfCheckedKeys: () => TreeKey[];
            _getAllNodes: () => default[];
            updateChildren: (key: TreeKey, data: TreeData) => void;
            _setCheckedKeys: (key: TreeKey, leafOnly: boolean | undefined, checkedKeys: {
                [key: string]: boolean;
            }) => void;
            setCheckedNodes: (array: default[], leafOnly?: boolean | undefined) => void;
            setCheckedKeys: (keys: TreeKey[], leafOnly?: boolean | undefined) => void;
            setDefaultExpandedKeys: (keys: TreeKey[]) => void;
            setChecked: (data: TreeKey | TreeNodeData, checked: boolean, deep: boolean) => void;
            getCurrentNode: () => default;
            setCurrentNode: (currentNode: default) => void;
            setUserCurrentNode: (node: default, shouldAutoExpandParent?: boolean | undefined) => void;
            setCurrentNodeKey: (key: TreeKey, shouldAutoExpandParent?: boolean | undefined) => void;
        }>;
        root: Ref<{
            id: number;
            text: string;
            checked: boolean;
            indeterminate: boolean;
            data: TreeNodeData;
            expanded: boolean;
            parent: any;
            visible: boolean;
            isCurrent: boolean;
            store: any;
            isLeafByUser: boolean;
            isLeaf: boolean;
            canFocus: boolean;
            level: number;
            loaded: boolean;
            childNodes: any[];
            loading: boolean;
            initialize: () => void;
            setData: (data: TreeNodeData) => void;
            readonly label: string;
            readonly key: TreeKey;
            readonly disabled: boolean;
            readonly nextSibling: any;
            readonly previousSibling: any;
            contains: (target: default, deep?: boolean | undefined) => boolean;
            remove: () => void;
            insertChild: (child?: default | FakeNode | undefined, index?: number | undefined, batch?: boolean | undefined) => void;
            insertBefore: (child: default | FakeNode, ref: default) => void;
            insertAfter: (child: default | FakeNode, ref: default) => void;
            removeChild: (child: default) => void;
            removeChildByData: (data: TreeNodeData) => void;
            expand: (callback?: (() => void) | undefined, expandParent?: boolean | undefined) => void;
            doCreateChildren: (array: TreeNodeData[], defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
            collapse: () => void;
            shouldLoadData: () => boolean;
            updateLeafState: () => void;
            setChecked: (value?: string | boolean | undefined, deep?: boolean | undefined, recursion?: boolean | undefined, passValue?: boolean | undefined) => void;
            getChildren: (forceInit?: boolean | undefined) => TreeNodeData | TreeNodeData[];
            updateChildren: () => void;
            loadData: (callback: (node: default) => void, defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
        }>;
        currentNode: Ref<{
            id: number;
            text: string;
            checked: boolean;
            indeterminate: boolean;
            data: TreeNodeData;
            expanded: boolean;
            parent: any;
            visible: boolean;
            isCurrent: boolean;
            store: any;
            isLeafByUser: boolean;
            isLeaf: boolean;
            canFocus: boolean;
            level: number;
            loaded: boolean;
            childNodes: any[];
            loading: boolean;
            initialize: () => void;
            setData: (data: TreeNodeData) => void;
            readonly label: string;
            readonly key: TreeKey;
            readonly disabled: boolean;
            readonly nextSibling: any;
            readonly previousSibling: any;
            contains: (target: default, deep?: boolean | undefined) => boolean;
            remove: () => void;
            insertChild: (child?: default | FakeNode | undefined, index?: number | undefined, batch?: boolean | undefined) => void;
            insertBefore: (child: default | FakeNode, ref: default) => void;
            insertAfter: (child: default | FakeNode, ref: default) => void;
            removeChild: (child: default) => void;
            removeChildByData: (data: TreeNodeData) => void;
            expand: (callback?: (() => void) | undefined, expandParent?: boolean | undefined) => void;
            doCreateChildren: (array: TreeNodeData[], defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
            collapse: () => void;
            shouldLoadData: () => boolean;
            updateLeafState: () => void;
            setChecked: (value?: string | boolean | undefined, deep?: boolean | undefined, recursion?: boolean | undefined, passValue?: boolean | undefined) => void;
            getChildren: (forceInit?: boolean | undefined) => TreeNodeData | TreeNodeData[];
            updateChildren: () => void;
            loadData: (callback: (node: default) => void, defaultProps?: TreeNodeLoadedDefaultProps | undefined) => void;
        }>;
        dragState: Ref<{
            showDropIndicator: boolean;
            draggingNode: null;
            dropNode: null;
            allowDrop: boolean;
            dropType: null;
        }>;
        el$: Ref<Nullable<HTMLElement>>;
        dropIndicator$: Ref<Nullable<HTMLElement>>;
        isEmpty: ComputedRef<boolean>;
        filter: (value: any) => void;
        getNodeKey: (node: default) => any;
        getNodePath: (data: TreeKey | TreeNodeData) => TreeNodeData[];
        getCheckedNodes: (leafOnly?: boolean | undefined, includeHalfChecked?: boolean | undefined) => TreeNodeData[];
        getCheckedKeys: (leafOnly?: boolean | undefined) => TreeKey[];
        getCurrentNode: () => TreeNodeData;
        getCurrentKey: () => any;
        setCheckedNodes: (nodes: default[], leafOnly?: boolean | undefined) => void;
        setCheckedKeys: (keys: any, leafOnly?: boolean | undefined) => void;
        setChecked: (data: TreeKey | TreeNodeData, checked: boolean, deep: boolean) => void;
        getHalfCheckedNodes: () => TreeNodeData[];
        getHalfCheckedKeys: () => TreeKey[];
        setCurrentNode: (node: default, shouldAutoExpandParent?: boolean | undefined) => void;
        setCurrentKey: (key: TreeKey, shouldAutoExpandParent?: boolean | undefined) => void;
        t: Translator;
        getNode: (data: TreeKey | TreeNodeData) => default;
        remove: (data: TreeNodeData | default) => void;
        append: (data: TreeNodeData, parentNode: TreeKey | TreeNodeData | default) => void;
        insertBefore: (data: TreeNodeData, refNode: TreeKey | TreeNodeData) => void;
        insertAfter: (data: TreeNodeData, refNode: TreeKey | TreeNodeData) => void;
        handleNodeExpand: (nodeData: TreeNodeData, node: default, instance: ComponentInternalInstance) => void;
        updateKeyChildren: (key: TreeKey, data: TreeData) => void;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("current-change" | "node-expand" | "check-change" | "node-click" | "node-contextmenu" | "node-collapse" | "check" | "node-drag-start" | "node-drag-end" | "node-drop" | "node-drag-leave" | "node-drag-enter" | "node-drag-over")[], "current-change" | "node-expand" | "check-change" | "node-click" | "node-contextmenu" | "node-collapse" | "check" | "node-drag-start" | "node-drag-end" | "node-drop" | "node-drag-leave" | "node-drag-enter" | "node-drag-over", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
        data: {
            type: ArrayConstructor;
            default: () => never[];
        };
        emptyText: {
            type: StringConstructor;
        };
        renderAfterExpand: {
            type: BooleanConstructor;
            default: boolean;
        };
        nodeKey: StringConstructor;
        checkStrictly: BooleanConstructor;
        defaultExpandAll: BooleanConstructor;
        expandOnClickNode: {
            type: BooleanConstructor;
            default: boolean;
        };
        checkOnClickNode: BooleanConstructor;
        checkDescendants: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoExpandParent: {
            type: BooleanConstructor;
            default: boolean;
        };
        defaultCheckedKeys: PropType<TreeKey[]>;
        defaultExpandedKeys: PropType<TreeKey[]>;
        currentNodeKey: PropType<string | number>;
        renderContent: FunctionConstructor;
        showCheckbox: {
            type: BooleanConstructor;
            default: boolean;
        };
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        allowDrag: FunctionConstructor;
        allowDrop: FunctionConstructor;
        props: {
            type: PropType<TreeOptionProps>;
            default: () => {
                children: string;
                label: string;
                disabled: string;
            };
        };
        lazy: {
            type: BooleanConstructor;
            default: boolean;
        };
        highlightCurrent: BooleanConstructor;
        load: PropType<LoadFunction>;
        filterNodeMethod: PropType<FilterNodeMethodFunction>;
        accordion: BooleanConstructor;
        indent: {
            type: NumberConstructor;
            default: number;
        };
        icon: {
            type: PropType<string | Component<any, any, any, ComputedOptions, MethodOptions>>;
        };
    }>> & {
        "onCurrent-change"?: ((...args: any[]) => any) | undefined;
        "onNode-expand"?: ((...args: any[]) => any) | undefined;
        onCheck?: ((...args: any[]) => any) | undefined;
        "onCheck-change"?: ((...args: any[]) => any) | undefined;
        "onNode-click"?: ((...args: any[]) => any) | undefined;
        "onNode-contextmenu"?: ((...args: any[]) => any) | undefined;
        "onNode-collapse"?: ((...args: any[]) => any) | undefined;
        "onNode-drag-start"?: ((...args: any[]) => any) | undefined;
        "onNode-drag-end"?: ((...args: any[]) => any) | undefined;
        "onNode-drop"?: ((...args: any[]) => any) | undefined;
        "onNode-drag-leave"?: ((...args: any[]) => any) | undefined;
        "onNode-drag-enter"?: ((...args: any[]) => any) | undefined;
        "onNode-drag-over"?: ((...args: any[]) => any) | undefined;
    }, {
        lazy: boolean;
        props: TreeOptionProps;
        data: unknown[];
        checkStrictly: boolean;
        accordion: boolean;
        draggable: boolean;
        defaultExpandAll: boolean;
        indent: number;
        renderAfterExpand: boolean;
        showCheckbox: boolean;
        expandOnClickNode: boolean;
        checkOnClickNode: boolean;
        checkDescendants: boolean;
        autoExpandParent: boolean;
        highlightCurrent: boolean;
    }>>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "back"[], "back", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>> & {
    onBack?: ((...args: any[]) => any) | undefined;
}, {}>;
export default _sfc_main;
