export type IssueLevel = "error" | "warning"; export interface ValidationIssue { nodeId: string; nodeName: string; nodeType: string; level: IssueLevel; code: string; message: string; } export interface ValidationResult { issues: ValidationIssue[]; errorCount: number; warningCount: number; /** nodeId -> issues[] */ nodeMap: Map; } export interface ValidationOptions { /** * 当前表单的字段名集合,用于校验规则中的字段引用是否仍存在 * 不传则跳过僵尸属性校验 */ formFieldNames?: string[]; /** * 当前规则的变量名集合(ruleData.variables 的 field 列表) * 变量也是合法的字段引用目标,与表单字段并集校验 */ variableNames?: string[]; /** * 规则绑定的表单ID(formId) * 不为空时,校验规则至少引用了表单字段或变量,否则规则没有业务意义 */ boundFormId?: string; } /** * 主校验入口 * @param nodes VueFlow nodes * @param edges VueFlow edges * @param options 可选校验选项(formFieldNames 用于僵尸属性校验) */ export declare const validateRuleFlow: (nodes: any[], edges: any[], options?: ValidationOptions) => ValidationResult;