import { Node, NodeId, Connection, Port } from '../../../types/core'; import { NodeEditorAction } from '../../composed/node-editor/actions'; import { ConstraintViolation } from '../../../types/NodeDefinition'; export type ConstraintValidationHook = { /** Validate a node operation */ validateNodeOperation: (node: Node, operation: "create" | "update" | "delete" | "move", allNodes: Record, allConnections: Record, context?: Record) => { isValid: boolean; violations: ConstraintViolation[]; isBlocking: boolean; }; /** Validate a connection operation */ validateConnectionOperation: (fromNode: Node, toNode: Node, operation: "connect" | "disconnect", allNodes: Record, allConnections: Record, context?: Record) => { isValid: boolean; violations: ConstraintViolation[]; isBlocking: boolean; }; /** Check if an action should be allowed */ canPerformAction: (action: NodeEditorAction, currentState: { nodes: Record; connections: Record; }) => { allowed: boolean; violations: ConstraintViolation[]; }; }; /** * Hook for constraint validation */ export declare const useConstraintValidation: (getNodePorts?: (nodeId: NodeId) => Port[]) => ConstraintValidationHook;