import { type DfDragDrop, type DfDragDropDistance } from '../../directives'; import { type DfDataNode, type DfPoint } from '../../ng-draw-flow.interfaces'; import { type NgDrawFlowStoreService } from '../../services/ng-draw-flow-store.service'; import { type ConnectionsService } from '../connections/connections.service'; import { type PanZoomService } from '../pan-zoom/pan-zoom.service'; export interface DfNodeInteractionControllerOptions { readonly connectionsService: ConnectionsService; readonly deletable: () => boolean; readonly draggable: () => boolean; readonly getCenteredPosition: (node: DfDataNode) => DfPoint; readonly getNode: () => DfDataNode; readonly isStartNode: () => boolean; readonly nodeDragThreshold: number; readonly panZoomService: PanZoomService; readonly store: NgDrawFlowStoreService; readonly applyPositionToStyle: (position: DfPoint, dynamic: boolean) => void; readonly clampPosition: (position: DfPoint) => DfPoint; readonly emitNodeDeleted: () => void; readonly emitNodeMoved: (node: DfDataNode) => void; readonly emitNodeSelected: (node: DfDataNode) => void; readonly recalculateConnectorsPosition: (distance: DfDragDropDistance, zoom: number) => void; readonly refreshRenderedGeometry: (dynamic: boolean) => void; readonly syncWorkspaceGeometry: () => void; } export declare class NodeInteractionController { private readonly options; private readonly cursorSignal; private readonly selectedSignal; private accumulatedDelta; private dragStartPosition; private moved; readonly cursor: import("@angular/core").Signal<"grabbing" | "initial">; readonly selected: import("@angular/core").Signal; constructor(options: DfNodeInteractionControllerOptions); handleKeyboardEvent(event: KeyboardEvent): void; setSelected(selected: boolean): void; handleDrag(event: DfDragDrop): void; clearHighlightedConnectionsFor(nodeId: string): void; cancelDrag(): void; private handleDragMove; private handleDragEnd; private resetDragState; }