export type PanelDropPosition = "top" | "bottom" | null;
export interface PanelDragState {
    dragItemId: string | null;
    dropPosition: PanelDropPosition;
    dropTargetId: string | null;
    isDragging: boolean;
}
interface PanelDragItem {
    element: HTMLElement;
    id: string;
}
interface UsePanelDragDropProps {
    autoScroll?: boolean;
    nodeHeight?: number;
    onDrop?: (dragId: string, dropId: string, position: PanelDropPosition) => void;
    scrollContainer?: HTMLElement | null;
    scrollEdgeSize?: number;
    scrollSpeed?: number;
}
export declare function usePanelDragDrop({ onDrop, autoScroll, scrollEdgeSize, scrollSpeed, }?: UsePanelDragDropProps): {
    containerRef: import("react").MutableRefObject<HTMLDivElement | null>;
    isDragging: boolean;
    isItemBeingDragged: (id: string) => boolean;
    isDropTarget: (id: string) => boolean;
    getDropPosition: (id: string) => PanelDropPosition;
    handleDragStart: (item: PanelDragItem, e: import("react").MouseEvent<Element, MouseEvent>) => void;
};
export {};
