import type { ComputedRef, InjectionKey, PropType, Ref, Slots } from 'vue';
import type { ExtractPublicPropTypes } from '../_util/interface';
import type { DropPosition, InnerTreeOption, TreeNodeKey, TreeOption } from './interface';
export declare const treeProps: {
    readonly data: {
        readonly type: PropType<TreeOption[]>;
        readonly default: () => TreeOption[];
    };
    readonly defaultExpandAll: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly expandedKeys: {
        readonly type: PropType<TreeNodeKey[]>;
        readonly default: () => TreeNodeKey[];
    };
    readonly accordion: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly selectable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly selectedKeys: {
        readonly type: PropType<TreeNodeKey[]>;
        readonly default: () => TreeNodeKey[];
    };
    readonly cascade: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly checkable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly checkStrictly: {
        readonly type: PropType<"all" | "parent" | "child">;
        readonly default: "all";
    };
    readonly checkedKeys: {
        readonly type: PropType<TreeNodeKey[]>;
        readonly default: () => TreeNodeKey[];
    };
    readonly multiple: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly childrenField: {
        readonly type: StringConstructor;
        readonly default: "children";
    };
    readonly valueField: {
        readonly type: StringConstructor;
        readonly default: "value";
    };
    readonly labelField: {
        readonly type: StringConstructor;
        readonly default: "label";
    };
    readonly remote: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly loadData: {
        readonly type: PropType<(node: TreeOption) => Promise<any>>;
    };
    readonly filterMethod: {
        readonly type: PropType<(filterText: string, node: TreeOption) => boolean>;
    };
    readonly inline: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly virtualList: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly cancelable: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    readonly draggable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly filterText: StringConstructor;
    readonly filterTextHighlight: BooleanConstructor;
};
export declare const treePropsDefaultValue: {
    [key: string]: any;
};
export type TreeProps = ExtractPublicPropTypes<typeof treeProps>;
export interface TreeInst {
    props: TreeProps;
    slots: Slots;
    selectNode: (value: TreeNodeKey, event: Event) => void;
    expandNode: (value: TreeNodeKey, event: Event) => void;
    checkNode: (value: TreeNodeKey, event: Event) => void;
    hasSelected: (value: TreeNodeKey) => boolean;
    nodeList: Map<TreeNodeKey, InnerTreeOption>;
    handleDragstart: (value: TreeNodeKey, event: DragEvent) => void;
    handleDragenter: (value: TreeNodeKey, event: DragEvent) => void;
    handleDragover: (value: TreeNodeKey, event: DragEvent) => void;
    handleDragleave: (value: TreeNodeKey, event: DragEvent) => void;
    handleDragend: (value: TreeNodeKey, event: DragEvent) => void;
    handleDrop: (value: TreeNodeKey, event: DragEvent) => void;
    dragOverInfo: Ref<{
        node: InnerTreeOption;
        position: DropPosition;
    }>;
    dragHighlightNode: ComputedRef<InnerTreeOption | undefined>;
}
export declare const TREE_PROVIDE_KEY: InjectionKey<TreeInst>;
