import type { NVL, Node } from '@neo4j-nvl/base'; import { BaseInteraction } from './base'; /** * Callbacks for the drag node interaction handler. */ export type DragNodeInteractionCallbacks = { /** * Called when node(s) are dragged * @param nodes - The node(s) being dragged. * @param event - The original mouse event. */ onDrag?: ((nodes: Node[], evt: MouseEvent) => void) | boolean; /** * Called once when node(s) are started to being dragged * @param nodes - The node(s) being dragged. * @param event - The original mouse event. */ onDragStart?: ((nodes: Node[], evt: MouseEvent) => void) | boolean; /** * Called once when node(s) are finished being dragged * @param nodes - The node(s) being dragged. * @param event - The original mouse event. */ onDragEnd?: ((nodes: Node[], evt: MouseEvent) => void) | boolean; }; /** * Interaction handler for dragging nodes, * which is achieved by clicking and moving the node. * When multiple nodes are selected, they are all dragged. * * For examples, head to the {@link https://neo4j.com/docs/nvl/current/interaction-handlers/#_dragnodeinteraction Drag Node Interaction documentation page}. */ export declare class DragNodeInteraction extends BaseInteraction> { private mousePosition; private mouseDownNode; private isDragging; private isDrawing; private selectedNodes; private moveSelectedNodes; /** * Creates a new instance of the drag node interaction handler. * @param nvl - The NVL instance to attach the interaction handler to. */ constructor(nvl: NVL, options?: {}); private handleMouseDown; private handleMouseMove; private handleBodyMouseUp; private resetState; /** * Removes all related event listeners from the container. */ destroy: () => void; }