import { FormFieldMeta } from '../useFormRuleRuntime'; /** 联动配置输入:从 compList 中提取的每个字段的联动配置 */ export interface LinkageSourceItem { /** 字段名(触发字段) */ fieldName: string; /** 字段标签(用于规则命名) */ label?: string; /** 联动配置原始数据(来自 compItem.preps.dataRelation) */ dataRelation: { /** 触发事件名:change/input/focus/blur/enter */ actionName?: string; /** 显隐/属性控制规则详情 */ relationDetails?: Array<{ controlCondition: string; relationFields: string | string[]; matchType?: string; matchFieldValue?: any; matchFieldName?: string; staticDatas?: any; params?: any; }>; /** API 联动配置 */ apiLinkage?: { proxyUrl?: string; url?: string; method?: string; queryParams?: any[]; fieldMapping?: Array<{ source: string; target: string; }>; [k: string]: any; }; /** 自定义代码 */ customCode?: string; }; } /** 转换结果:可直接赋值给 RuleDesigner 的 ruleData */ export interface ConvertedRuleData { /** 规则名 */ ruleName: string; /** 规则编码(自动生成) */ ruleCode: string; /** 规则类型 */ ruleType: string; /** 触发事件:ON_CHANGE / ON_LOAD */ triggerEvent: "ON_CHANGE" | "ON_LOAD"; /** 流程内容(节点+边+变量) */ flowContent: { nodes: any[]; edges: any[]; variables: any[]; }; /** 转换来源统计(用于日志展示) */ sourceStats: { visibilityCount: number; apiFillCount: number; customCount: number; skipped: string[]; }; } /** * 转换主函数 * * @param sources 从表单 compList 中提取的联动配置列表 * @param formFields 表单字段元数据(用于变量库自动派生) * @param formId 表单ID * @returns 转换后的规则数据 */ export declare const convertLinkageToRule: (sources: LinkageSourceItem[], formFields?: FormFieldMeta[], formId?: string) => ConvertedRuleData; /** * 从表单设计器的 compList 中提取联动配置 * * 调用方示例: * ```ts * const sources = extractLinkageFromCompList(designForm.list) * const result = convertLinkageToRule(sources, fieldMetaList, formId) * ``` */ export declare const extractLinkageFromCompList: (compList: any[]) => LinkageSourceItem[];