/**
 * 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 { FlowSurfaceBindKey, FlowSurfaceReadLocator, FlowSurfaceReadTarget, FlowSurfaceResolvedTarget, FlowSurfaceSurfaceSelector } from '../types';
import type { FlowSurfacePlanSurfaceContext, FlowSurfaceResolvedKey } from './types';
type BuildPlanSurfaceContextDeps = {
    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;
    buildPlanKeyKind: (node: any, resolvedKind?: string) => string;
    assertBindKeyKind: (actionName: string, bindKey: FlowSurfaceBindKey, node: any, resolvedKind?: string) => void;
    collectDeclaredKeysFromTree: (node: any) => Map<string, FlowSurfaceResolvedKey>;
};
export declare function buildPlanSurfaceContext(input: {
    actionName: string;
    surfaceSelector?: FlowSurfaceSurfaceSelector;
    bindKeys: FlowSurfaceBindKey[];
}, deps: BuildPlanSurfaceContextDeps, options?: {
    transaction?: any;
}): Promise<FlowSurfacePlanSurfaceContext>;
export {};
