type WorkflowNodeRef = string; interface WorkflowCompileResult { definitionJson: { version: "v3"; nodes: any[]; edges: any[]; flowConfig: Record; globalSettings: Record; }; previewJson: { kind: "workflow_code_preview"; version: "preview_v1"; steps: any[]; edges: any[]; sourceMode: "workflow_code_ts"; }; } interface WorkflowDefinitionInput { name?: string; formCode?: string; formUuid?: string; globalSettings?: Record; build: (flow: WorkflowBuilder) => void; } interface WorkflowDeclarativeInput { id?: string; name?: string; formCode?: string; formUuid?: string; globalSettings?: Record; nodes: WorkflowDeclarativeNode[]; edges?: WorkflowDeclarativeEdge[]; } interface WorkflowDeclarativeNode { __openxiangdaWorkflowNode: true; id: WorkflowNodeRef; type: string; data: NodeOptions; } interface WorkflowDeclarativeEdge { __openxiangdaWorkflowEdge: true; source: WorkflowNodeRef; target: WorkflowNodeRef; data?: NodeOptions; } type NodeOptions = Record; declare function createDeclarativeEdge(source: WorkflowNodeRef, target: WorkflowNodeRef, data?: NodeOptions): WorkflowDeclarativeEdge; declare class WorkflowBuilder { private readonly meta; private nodes; private edges; private flowConfig; private globalSettings; readonly action: { approve: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; reject: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; transfer: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; return: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; returnToInitiator: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; save: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; withdraw: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; resubmit: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; callback: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; retryException: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; adminTransfer: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; }; constructor(meta?: Omit); start(id?: string, data?: NodeOptions): WorkflowNodeRef; end(id?: string, data?: NodeOptions): WorkflowNodeRef; approval(id: string, data: NodeOptions): WorkflowNodeRef; copy(id: string, data: NodeOptions): WorkflowNodeRef; jsCode(id: string, data: NodeOptions): WorkflowNodeRef; functionCall(id: string, data: NodeOptions): WorkflowNodeRef; callbackWait(id: string, data: NodeOptions): WorkflowNodeRef; connectorCall(id: string, data: NodeOptions): WorkflowNodeRef; workNotification(id: string, data: NodeOptions): WorkflowNodeRef; notification(id: string, data: NodeOptions): WorkflowNodeRef; dingtalkCard(id: string, data: NodeOptions): WorkflowNodeRef; condition(id: string, data: NodeOptions): WorkflowNodeRef; branch(id: string, data?: NodeOptions): WorkflowNodeRef; parallel(id: string, branches: Array<{ id: string; label?: string; nodes: WorkflowNodeRef[]; }>, data?: NodeOptions): { entry: string; converge: string; }; conditionBranches(id: string, branches: Array<{ id: string; label?: string; condition?: any; nodes: WorkflowNodeRef[]; isElse?: boolean; }>, data?: NodeOptions): { entry: string; converge: string; }; data: { retrieveSingle: (id: string, data: NodeOptions) => string; retrieveBatch: (id: string, data: NodeOptions) => string; create: (id: string, data: NodeOptions) => string; update: (id: string, data: NodeOptions) => string; }; node(type: string, id: string, data: NodeOptions): WorkflowNodeRef; edge(source: WorkflowNodeRef, target: WorkflowNodeRef, data?: NodeOptions): void; connect(source: WorkflowNodeRef, target: WorkflowNodeRef, data?: NodeOptions): void; sequence(...refs: WorkflowNodeRef[]): void; setFieldPermissions(nodeId: WorkflowNodeRef, permissions: any[]): void; setGlobalSettings(settings: Record): void; compile(): WorkflowCompileResult; } declare function defineWorkflow(input: WorkflowDefinitionInput): { __openxiangdaWorkflow: boolean; compile(): WorkflowCompileResult; }; declare const flow: { define(input: WorkflowDefinitionInput | WorkflowDeclarativeInput): { __openxiangdaWorkflow: boolean; compile(): WorkflowCompileResult; }; action: { approve: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; reject: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; transfer: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; return: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; returnToInitiator: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; save: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; withdraw: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; resubmit: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; callback: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; retryException: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; adminTransfer: (label?: string, extra?: NodeOptions) => { action: string; name: { zh_CN: string; }; }; }; assignee: { user: (id: string, name?: string) => { type: string; id: string; name: string; }; initiator: () => { type: string; id: string; name: string; }; role: (id: string, name?: string) => { type: string; id: string; name: string; }; departmentSupervisor: (level?: number, extra?: NodeOptions) => { type: string; level: number; }; initiatorSelect: (scope?: "all" | "members" | "roles", extra?: NodeOptions) => { type: string; scope: "all" | "members" | "roles"; }; }; start: (id?: string, data?: NodeOptions) => WorkflowDeclarativeNode; end: (id?: string, data?: NodeOptions) => WorkflowDeclarativeNode; approval: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; copy: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; jsCode: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; functionCall: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; callbackWait: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; connectorCall: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; workNotification: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; notification: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; condition: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; branch: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; data: { retrieveSingle: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; retrieveBatch: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; create: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; update: (id: string, data?: NodeOptions) => WorkflowDeclarativeNode; }; connect: typeof createDeclarativeEdge; }; export { WorkflowBuilder, type WorkflowCompileResult, type WorkflowDeclarativeEdge, type WorkflowDeclarativeInput, type WorkflowDeclarativeNode, type WorkflowDefinitionInput, type WorkflowNodeRef, defineWorkflow, flow };