import type { NVL, Node, Relationship } from '@neo4j-nvl/base'; import { BaseInteraction } from './base'; /** * @internal * @hidden */ export type DrawInteractionCallbacks = { onHoverNodeMargin?: ((hoveredNode: Node | null, evt: MouseEvent) => void) | boolean; onDrawEnded?: ((newRelationshipToAdd: Relationship | null, newTargetNodeToAdd: Node | null, event: MouseEvent) => void) | boolean; onDrawStarted?: ((event: MouseEvent) => void) | boolean; }; /** * Options for the draw interaction handler. */ export type DrawInteractionOptions = { /** Styling for the ghost graph that is shown when drawing. */ ghostGraphStyling?: { /** Styling for the ghost node. */ node?: Pick; /** Styling for the ghost relationship. */ relationship?: Pick; }; }; /** * @internal * @hidden */ export declare class DrawInteraction extends BaseInteraction { private isMoved; private isDrawing; private isDraggingNode; private mouseDownNode; private newTempTargetNode; private newTempRegularRelationshipToNewTempTargetNode; private newTempRegularRelationshipToExistingNode; private newTempSelfReferredRelationship; private newTargetNodeToAdd; private newRelationshipToAdd; private mouseOutsideOfNvlArea; constructor(nvl: NVL, options?: DrawInteractionOptions); private cancelDrawing; private handleMouseUpGlobal; private handleMouseLeaveNvl; private handleMouseEnterNvl; private handleMouseMove; private setNewRegularRelationship; private setNewRegularRelationshipToNewTempTargetNode; private setNewRegularRelationshipToExistingNode; private setNewSelfReferredRelationship; private handleMouseDown; private handleMouseUp; destroy: () => void; }