import { DragItem, DropPosition, DropResult } from '../core/types'; export interface UseDropSpec { containerId: string; index: number; id?: string | number; args?: unknown; accept?: string | string[]; greedy?: boolean; orientation?: 'vertical' | 'horizontal'; dropPosition?: DropPosition | 'auto'; edgeThreshold?: number; acceptFiles?: boolean; dropEffect?: 'move' | 'copy' | 'link' | 'none'; canDrop?: boolean | ((item: DragItem) => boolean); onDragEnter?: (item: DragItem) => void; onDragLeave?: (item: DragItem) => void; onHover?: (item: DragItem, position: DropPosition | undefined) => void; onDrop?: (source: DragItem, result: DropResult) => void; } export interface UseDropReturn { dropRef: (node: HTMLElement | null) => void; isOver: boolean; isOverCurrent: boolean; canDrop: boolean; position: DropPosition | undefined; nodeId: string; } export declare function useDrop(spec: UseDropSpec): UseDropReturn;