/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ export type FlowSurfacePlanSelectorMode = 'none' | 'target' | 'rootUidTarget' | 'sourceTarget'; export type FlowSurfacePlanActionSpec = { selectorMode: FlowSurfacePlanSelectorMode; }; export type FlowSurfacePlanMutateActionSpec = FlowSurfacePlanActionSpec & { executionKind: 'mutate'; }; export type FlowSurfacePlanOnlyActionSpec = FlowSurfacePlanActionSpec & { executionKind: 'planOnly'; }; export type FlowSurfaceResolvedPlanActionSpec = FlowSurfacePlanMutateActionSpec | FlowSurfacePlanOnlyActionSpec; export declare const FLOW_SURFACE_PLAN_ACTION_SPECS: { readonly createMenu: { readonly selectorMode: "none"; readonly executionKind: "mutate"; }; readonly createPage: { readonly selectorMode: "none"; readonly executionKind: "mutate"; }; readonly compose: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly configure: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly setFieldValueRules: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly setBlockLinkageRules: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly setFieldLinkageRules: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly setActionLinkageRules: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly updateSettings: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addEventFlow: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly setEventFlow: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly removeEventFlow: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly setEventFlows: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly setLayout: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addTab: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly updateTab: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly moveTab: { readonly selectorMode: "sourceTarget"; readonly executionKind: "mutate"; }; readonly removeTab: { readonly selectorMode: "rootUidTarget"; readonly executionKind: "mutate"; }; readonly addPopupTab: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly updatePopupTab: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly movePopupTab: { readonly selectorMode: "sourceTarget"; readonly executionKind: "mutate"; }; readonly removePopupTab: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addBlock: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addField: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addAction: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly addRecordAction: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly moveNode: { readonly selectorMode: "sourceTarget"; readonly executionKind: "mutate"; }; readonly removeNode: { readonly selectorMode: "target"; readonly executionKind: "mutate"; }; readonly convertTemplateToCopy: { readonly selectorMode: "target"; readonly executionKind: "planOnly"; }; readonly destroyPage: { readonly selectorMode: "rootUidTarget"; readonly executionKind: "mutate"; }; } & { readonly createMenu: unknown; readonly createPage: unknown; readonly compose: unknown; readonly configure: unknown; readonly setFieldValueRules: unknown; readonly setBlockLinkageRules: unknown; readonly setFieldLinkageRules: unknown; readonly setActionLinkageRules: unknown; readonly updateSettings: unknown; readonly addEventFlow: unknown; readonly setEventFlow: unknown; readonly removeEventFlow: unknown; readonly setEventFlows: unknown; readonly setLayout: unknown; readonly addTab: unknown; readonly updateTab: unknown; readonly moveTab: unknown; readonly removeTab: unknown; readonly addPopupTab: unknown; readonly updatePopupTab: unknown; readonly movePopupTab: unknown; readonly removePopupTab: unknown; readonly addBlock: unknown; readonly addField: unknown; readonly addAction: unknown; readonly addRecordAction: unknown; readonly moveNode: unknown; readonly removeNode: unknown; readonly convertTemplateToCopy: unknown; readonly destroyPage: unknown; }; export type FlowSurfacePlanStepActionName = keyof typeof FLOW_SURFACE_PLAN_ACTION_SPECS; export type FlowSurfacePlanOnlyActionName = { [K in FlowSurfacePlanStepActionName]: (typeof FLOW_SURFACE_PLAN_ACTION_SPECS)[K] extends { executionKind: 'planOnly'; } ? K : never; }[FlowSurfacePlanStepActionName]; export declare const FLOW_SURFACE_PLAN_STEP_ACTIONS: ("setFieldValueRules" | "setBlockLinkageRules" | "setFieldLinkageRules" | "setActionLinkageRules" | "configure" | "createPage" | "addTab" | "addPopupTab" | "addBlock" | "addField" | "addAction" | "addRecordAction" | "compose" | "createMenu" | "convertTemplateToCopy" | "destroyPage" | "updateTab" | "moveTab" | "removeTab" | "updatePopupTab" | "movePopupTab" | "removePopupTab" | "updateSettings" | "addEventFlow" | "setEventFlow" | "removeEventFlow" | "setEventFlows" | "setLayout" | "moveNode" | "removeNode")[]; export declare function getFlowSurfacePlanSelectorRequirements(selectorMode: FlowSurfacePlanSelectorMode): { readonly requiresTarget: false; readonly requiresSource: false; } | { readonly requiresTarget: true; readonly requiresSource: false; } | { readonly requiresTarget: true; readonly requiresSource: false; } | { readonly requiresTarget: true; readonly requiresSource: true; }; export declare function getFlowSurfacePlanActionSpec(action: string): FlowSurfaceResolvedPlanActionSpec | undefined; export declare function isFlowSurfacePlanOnlyAction(action: string): action is FlowSurfacePlanOnlyActionName;