import { Node, Port } from '../../types/core'; import { NodeDefinition, PortDefinition } from '../../types/NodeDefinition'; /** * Port override configuration for node-specific customizations */ export type PortOverride = { /** References port from definition */ portId: string; /** Override max connections */ maxConnections?: number | "unlimited"; /** Override allowed node types */ allowedNodeTypes?: string[]; /** Override allowed port types */ allowedPortTypes?: string[]; /** Disable this port */ disabled?: boolean; }; /** * Extended Node interface with port overrides */ export type NodeWithPortOverrides = { /** Optional port-specific overrides */ portOverrides?: PortOverride[]; } & Omit; /** * Infer default port definitions when ports are not explicitly defined * Rules: * - input ports are positioned on the left * - output ports are positioned on the right * - ports are centered vertically */ export declare function inferDefaultPortDefinitions(_node: Node): PortDefinition[]; /** * Derive ports from node definition, applying any node-specific overrides. * This is the main entry point for port derivation. * * If no ports are defined in the definition, infers default ports based on: * - input ports positioned on the left * - output ports positioned on the right * - vertically centered */ export declare function deriveNodePorts(node: Node, definition: NodeDefinition): Port[];