import { Node, Connection, NodeId, ConnectionId, PortId } from '../../../../types/core'; import { NodeDefinition } from '../../../../types/NodeDefinition'; /** * @file Render optimization utilities using memoization for the node editor * Provides custom equality functions and hooks for optimizing React component re-renders * during node and connection rendering, especially for performance-critical drag operations */ import * as React from "react"; /** * Custom equality function for nodes that ignores position changes during drag */ export declare function areNodesEqual(prevNode: Node, nextNode: Node, isDragging: boolean): boolean; /** * Custom equality function for connections that considers endpoint positions */ export declare function areConnectionsEqual(prevConnection: Connection, nextConnection: Connection, prevNodes: Record, nextNodes: Record): boolean; /** * Memoized sorted nodes calculation */ export declare function useSortedNodes(nodes: Record, nodeDefinitions: NodeDefinition[]): Node[]; /** * Memoized connected ports calculation */ export declare function useConnectedPorts(connections: Record): Set; /** * Memoized per-node connected port ids. * Ensures stable Set references for nodes whose connected port ids did not change. */ export declare function useConnectedPortIdsByNode(connections: Record): ReadonlyMap>; /** * Create a memoized component with custom comparison */ export declare function createMemoizedComponent

(Component: React.ComponentType

, propsAreEqual?: (prevProps: P, nextProps: P) => boolean): React.ComponentType

;