import { XYCoord } from "react-dnd";
import { DragCollectedProps } from "../components/DragPreview/interface";
import { NodeShape } from "./crossingHelper";
export declare enum DRAG_EFFECT {
    ADD = "ADD",
    UPDATE = "UPDATE"
}
export declare const getRatio: (initialClientOffSet: XYCoord | null, initialSourceClientOffset: XYCoord | null, unitWidth: number) => {
    xRatio: number;
    yRatio: number;
};
export declare const combineWidgetInfos: (layoutInfos: NodeShape[]) => {
    x: number;
    y: number;
    w: number;
    h: number;
};
export declare const getScrollTop: (displayName: string) => number;
export declare const getContainerTop: (displayName: string) => number;
export declare const getMousePositionInfo: (initialClientOffSet: XYCoord | null, initialSourceClientOffset: XYCoord | null, mousePositionInViewport: XYCoord | null, unitWidth: number, containerTop: number, containerLeft: number, containerScrollTop: number, yOffset?: number, xOffset?: number, wRatio?: number, columnNumber?: number) => {
    widgetY: number;
    widgetX: number;
    mouseHoveredTopHalf: boolean;
    mouseRealY: number;
    mouseRealX: number;
    mouseRealTopHalf: boolean;
};
export declare const clamWidgetShape: (dragPreview: NodeShape, columnNumber: number, isMultiDrag: boolean) => {
    x: number;
    w: number;
    y: number;
    previewH: number;
};
export declare const canCrossDifferenceColumnNumber: (draggedShapes: NodeShape[]) => boolean;
export declare const getDragPreview: (parentNodeDisplayName: string, unitW: number, dragCollectedProps: DragCollectedProps, columnNumber: number) => {
    shape: {
        x: number;
        w: number;
        y: number;
        previewH: number;
    };
    canDrop: boolean;
};
