import React from "react";
import { iDragDropContext, iDraggableProps, iDraggedItemType, iDroppableProps } from "./drag-drop.types";
/** */
export declare function useDragDropContext<DragItemType extends iDraggedItemType<string> = never, DropInfoType extends iDroppableProps<string, any> = never>(info: {
    dragInfo?: iDraggableProps<DragItemType>;
    dropInfo?: DropInfoType;
}): {
    dragDropContext: iDragDropContext;
    drag: {
        isDragging: boolean;
        dragRef: import("react-dnd").ConnectDragSource;
    };
    drop: {
        canDrop: boolean;
        isOver: boolean;
        dropRef: import("react-dnd").ConnectDropTarget;
    };
    /** an item that this control can handler is being dragged */
    expectingDrop: boolean;
    dragDropRef: import("react-dnd").ConnectDragSource;
};
export declare function useDragDropContextProvider(): iDragDropContext;
interface iProps {
}
export declare const DragDropContextProvider: React.FunctionComponent<React.PropsWithChildren<iProps>>;
export {};
