/**
 * 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.
 */
import type { FlowSurfaceDescribeValues, FlowSurfaceExecutorContext, FlowSurfaceMutateOp, FlowSurfacePlanRequestValues, FlowSurfaceReadLocator, FlowSurfaceReadTarget, FlowSurfaceResolvedTarget } from '../types';
import { type FlowSurfacePlanOnlyActionName } from './action-specs';
import type { FlowSurfacePlanSurfaceContext } from './types';
type FlowSurfacePlanningRuntimeDeps = {
    normalizeGetTarget: (value: any) => FlowSurfaceReadLocator;
    resolveLocator: (target: FlowSurfaceReadLocator, options?: {
        transaction?: any;
    }) => Promise<FlowSurfaceResolvedTarget>;
    loadResolvedSurfaceTree: (resolved: FlowSurfaceResolvedTarget, transaction?: any) => Promise<any>;
    stripInternalSurfaceMetaFromNodeTree: <T = any>(node: T) => T;
    buildReadTargetSummary: (target: FlowSurfaceReadLocator, resolved: FlowSurfaceResolvedTarget) => FlowSurfaceReadTarget;
    buildSurfaceContextFingerprint: (context: Pick<FlowSurfacePlanSurfaceContext, 'surfaceResolved' | 'publicTree' | 'keyMap'>) => string;
    buildSurfaceReadPayload: (target: FlowSurfaceReadLocator, resolved: FlowSurfaceResolvedTarget, node: any, options?: {
        transaction?: any;
    }) => Promise<any>;
    dispatchPlanOnlyAction: (action: FlowSurfacePlanOnlyActionName, payload: Record<string, any>, transaction?: any) => Promise<any>;
    dispatchOp: (op: FlowSurfaceMutateOp, resolvedValues: Record<string, any>, currentCtx: FlowSurfaceExecutorContext) => Promise<any>;
};
export declare function describeSurface(values: FlowSurfaceDescribeValues, deps: FlowSurfacePlanningRuntimeDeps, options?: {
    transaction?: any;
}): Promise<any>;
type FlowSurfaceInternalPlanExecutionValues = Pick<FlowSurfacePlanRequestValues, 'surface' | 'plan'>;
export type FlowSurfaceInternalPlanExecutionResult = {
    results: Array<Record<string, any>>;
};
export declare function executeInternalPlan(values: FlowSurfaceInternalPlanExecutionValues, deps: FlowSurfacePlanningRuntimeDeps, options?: {
    transaction?: any;
}): Promise<FlowSurfaceInternalPlanExecutionResult>;
export {};
