import type { FreeformItemData } from '../types/index.js'; export interface DropZoneEntry { id: string; element: HTMLElement; accept?: (items: FreeformItemData[]) => boolean; } export declare function useDropZoneRegistry(): { register: (id: string, element: HTMLElement, accept?: (items: FreeformItemData[]) => boolean) => void; unregister: (id: string) => void; getAll: () => Map; findAtPosition: (x: number, y: number, excludeIds?: Set) => DropZoneEntry | null; setHovered: (zoneId: string | null, items?: FreeformItemData[], position?: { x: number; y: number; } | null) => void; updatePosition: (position: { x: number; y: number; }) => void; setTargetDropIndex: (index: number | null) => void; setTargetContainer: (containerId: string | null, accepted?: boolean) => void; hoveredZoneId: import("vue").Ref; hoveredItems: import("vue").Ref<{ id: string; type?: import("../types/index.js").ItemType | undefined; position?: { x: number; y: number; } | undefined; disabled?: boolean | undefined; }[], FreeformItemData[] | { id: string; type?: import("../types/index.js").ItemType | undefined; position?: { x: number; y: number; } | undefined; disabled?: boolean | undefined; }[]>; dragPosition: import("vue").Ref<{ x: number; y: number; } | null, { x: number; y: number; } | { x: number; y: number; } | null>; targetDropIndex: import("vue").Ref; targetContainerId: import("vue").Ref; targetContainerAccepted: import("vue").Ref; };