import { Node, Port } from '../../../types/core'; import { NodePortPositions, EditorPortPositions, PortPositionConfig } from '../../../types/portPosition'; import { ComputedPortPosition } from '../../../types/NodeDefinition'; /** * Options for computing node port positions */ export type ComputeNodePortPositionsOptions = { /** Port position configuration */ config?: PortPositionConfig; /** Optional explicit port array */ ports?: Port[]; }; /** * Compute all port positions for a single node * @param node - The node to compute port positions for (may include ports property from PortPositionNode) * @param configOrOptions - Port position configuration or options object * @param ports - Optional explicit port array (if not provided, uses node.ports or empty array) */ export declare function computeNodePortPositions(node: Node & { ports?: Port[]; }, configOrOptions?: PortPositionConfig | ComputeNodePortPositionsOptions, ports?: Port[]): NodePortPositions; /** * Create a default compute function for use with custom computePortPositions in NodeDefinition */ export declare function createDefaultPortCompute(node: Node, config?: PortPositionConfig): (ports: Port[]) => Map; /** * Compute port positions for all nodes in the editor * @param nodes - Array of nodes (may include ports property from PortPositionNode) * @param config - Port position configuration */ export declare function computeAllPortPositions(nodes: Array, config?: PortPositionConfig): EditorPortPositions; /** * Update port positions for specific nodes * @param currentPositions - Current port positions map * @param nodesToUpdate - Array of nodes to update (may include ports property from PortPositionNode) * @param config - Port position configuration */ export declare function updatePortPositions(currentPositions: EditorPortPositions, nodesToUpdate: Array, config?: PortPositionConfig): EditorPortPositions;