/**
 * 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 { FlowSurfaceErrorItemInput } from './errors';
export type FlowSurfaceAuthoringWriteAction = 'applyBlueprint' | 'compose' | 'addBlock' | 'addBlocks' | 'configure';
export interface FlowSurfaceAuthoringValidationContext {
    authoringActionName?: FlowSurfaceAuthoringWriteAction;
    applyBlueprintScriptAssets?: Record<string, any>;
    getCollection?: (dataSourceKey: string, collectionName: string) => any;
    getDefaultFieldGroups?: (dataSourceKey: string, collectionName: string) => any;
    findMenuGroupRoutesByTitle?: (title: string, transaction?: any) => Promise<any[]>;
    transaction?: any;
    hostBlockType?: string;
    hostCollectionName?: string;
    hostDataSourceKey?: string;
    currentCollectionName?: string;
    currentDataSourceKey?: string;
    isPopupSurface?: boolean;
    popupScene?: string;
    popupHasCurrentRecord?: boolean;
    enabledPackages?: ReadonlySet<string>;
    currentNode?: any;
    skipGeneratedPopupDefaultFieldGroups?: boolean;
    skipGeneratedLayoutSingleColumnErrors?: boolean;
    findModelById?: (uid: string, options?: {
        transaction?: any;
        includeAsyncNode?: boolean;
    }) => Promise<any>;
    findOwningBlockGrid?: (uid: string, transaction?: any) => Promise<any>;
}
export declare function assertFlowSurfaceAuthoringPayload(actionName: FlowSurfaceAuthoringWriteAction, values: any, context?: FlowSurfaceAuthoringValidationContext): Promise<void>;
export declare function collectFlowSurfaceAuthoringErrors(actionName: FlowSurfaceAuthoringWriteAction, values: any, context?: FlowSurfaceAuthoringValidationContext): Promise<FlowSurfaceErrorItemInput[]>;
