import { Node, Position, Port, Size, ResizeHandle as NodeResizeHandle } from '../../types/core'; import { NodeDefinition, NodeRendererProps } from '../../types/NodeDefinition'; import { ConnectablePortsResult } from '../../core/port/connectivity/connectableTypes'; import { NodeAppearance } from '../../core/node/nodeAppearance'; import { NodeBehaviorState, NodeResizeState } from '../../core/node/nodeState'; import { ExternalDataStateWithActions } from '../../contexts/external-data/useExternalData'; /** * @file Pure UI component for rendering a node * Receives all data via props - no context dependencies */ import * as React from "react"; export type NodeViewPresenterProps = { node: Node; isSelected: boolean; isDragging: boolean; dragOffset?: Position; nodeRenderer?: (props: NodeRendererProps) => React.ReactNode; behaviorState: NodeBehaviorState; appearance: NodeAppearance; resizeState: NodeResizeState; displaySize: Size; isVisuallyDragging: boolean; hasChildren: boolean; groupChildrenCount: number; nodeDefinition?: NodeDefinition; /** Whether this node's type is not registered in the definition registry */ isUnknownType?: boolean; externalDataState: ExternalDataStateWithActions; ports: Port[]; isEditingTitle: boolean; editingValue: string; onPointerDown: (e: React.PointerEvent, nodeId: string, isDragAllowed?: boolean) => void; onContextMenu: (e: React.MouseEvent, nodeId: string) => void; onTitleDoubleClick: (e: React.MouseEvent) => void; onEditingChange: (e: React.ChangeEvent) => void; onEditingKeyDown: (e: React.KeyboardEvent) => void; onEditingBlur: () => void; onResizeStart: (e: React.PointerEvent, handle: NodeResizeHandle) => void; onUpdateNode: (updates: Partial) => void; onStartEdit: () => void; onPortPointerDown?: (e: React.PointerEvent, port: Port) => void; onPortPointerUp?: (e: React.PointerEvent, port: Port) => void; onPortPointerEnter?: (e: React.PointerEvent, port: Port) => void; onPortPointerMove?: (e: React.PointerEvent, port: Port) => void; onPortPointerLeave?: (e: React.PointerEvent, port: Port) => void; onPortPointerCancel?: (e: React.PointerEvent, port: Port) => void; connectingPort?: Port; hoveredPort?: Port; connectedPortIds?: ReadonlySet; connectablePorts?: ConnectablePortsResult; candidatePortId?: string; /** Control visibility of port labels. When undefined, derived from zoom level. */ showPortLabels?: boolean; }; export declare const NodeViewPresenter: React.NamedExoticComponent;