import { DragEvent } from 'react';
import TreeStore from '@tdesign/common-js/tree-v1/tree-store';
import TreeNode from '@tdesign/common-js/tree-v1/tree-node';
import { TreeProps } from '../Tree';
import type { TdTreeProps } from '../type';
interface Value {
    props: TreeProps;
    store: TreeStore;
}
export declare const TreeDraggableContext: {
    Provider: (props: import("react").PropsWithChildren<{
        value: Value;
    }>) => import("react").JSX.Element;
    use: () => {
        onDragStart: (context: {
            node: TreeNode;
            e: DragEvent<HTMLDivElement>;
        }) => void;
        onDragEnd: (context: {
            node: TreeNode;
            e: DragEvent<HTMLDivElement>;
        }) => void;
        onDragOver: (context: {
            node: TreeNode;
            e: DragEvent<HTMLDivElement>;
        }) => void;
        onDragLeave: (context: {
            node: TreeNode;
            e: DragEvent<HTMLDivElement>;
        }) => void;
        onDrop: (context: {
            node: TreeNode;
            dropPosition: number;
            e: DragEvent<HTMLDivElement>;
            allowDrop?: TdTreeProps["allowDrop"];
        }) => void;
    };
};
export declare const useTreeDraggableContext: () => {
    onDragStart: (context: {
        node: TreeNode;
        e: DragEvent<HTMLDivElement>;
    }) => void;
    onDragEnd: (context: {
        node: TreeNode;
        e: DragEvent<HTMLDivElement>;
    }) => void;
    onDragOver: (context: {
        node: TreeNode;
        e: DragEvent<HTMLDivElement>;
    }) => void;
    onDragLeave: (context: {
        node: TreeNode;
        e: DragEvent<HTMLDivElement>;
    }) => void;
    onDrop: (context: {
        node: TreeNode;
        dropPosition: number;
        e: DragEvent<HTMLDivElement>;
        allowDrop?: TdTreeProps["allowDrop"];
    }) => void;
};
export {};
