/** * Shared drag-and-drop state contract. * * Controllers reflect interaction state on these bare `data-*` attributes so * CSS can react — no visual styling is applied in JS. The optional theme * (`@42/styles/dnd.css`) provides overridable feedback for every component * that uses this contract; consumers can target the same attributes. * * - `data-dragging` → on the element currently being dragged * - `data-drop-target` → on a drop target while a compatible drag is over it * - `data-drop-edge` → on a drop target: where the item will land * (`top` | `bottom` | `left` | `right`) * - `data-dropped` → briefly on an element right after it was dropped */ export declare const DND_STATE: { readonly dragging: "dragging"; readonly dropTarget: "dropTarget"; readonly edge: "dropEdge"; readonly dropped: "dropped"; }; /** Flag `el` as the element currently being dragged. */ export declare function markDragging(el: HTMLElement): void; /** Remove the dragging flag from `el`. */ export declare function clearDragging(el: HTMLElement): void; /** * Flag `el` as the active drop target. When `data` carries a closest edge * (from `attachClosestEdge`), also reflect it on `data-drop-edge`. */ export declare function markDropTarget(el: HTMLElement, data?: Record): void; /** Clear all drop-target state from `el`. */ export declare function clearDropTarget(el: HTMLElement): void; /** * Briefly flag `el` as just-dropped so CSS can play a settle animation, then * remove the flag. A pending timer is harmless if the element is detached * (e.g. after `destroy()`). */ export declare function flashDropped(el: HTMLElement, ms?: number): void;