/**
 * 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 FlowModelRepository from '../../repository';
export declare const APPROVAL_SURFACE_ROOT_USES: Set<string>;
export declare const APPROVAL_SINGLETON_ACTION_USES: Set<string>;
type ApprovalRuntimeConfigDeps = {
    db: {
        getRepository: (resourceName: string) => {
            find: (options: Record<string, any>) => Promise<any[]>;
            update: (options: Record<string, any>) => Promise<any>;
        };
    };
    locator: {
        findParentUid: (uid: string, transaction?: any) => Promise<string | null | undefined>;
    };
    repository: Pick<FlowModelRepository, 'findModelById'>;
};
export declare class FlowSurfaceApprovalRuntimeConfigService {
    private readonly deps;
    constructor(deps: ApprovalRuntimeConfigDeps);
    private getRepositoryIfAvailable;
    private readModelField;
    private readApprovalConfig;
    private collectApprovalActionNodes;
    findApprovalSurfaceRootForNode(uid: string, transaction?: any): Promise<any>;
    private findApprovalWorkflowBySurfaceRootUid;
    private findApprovalNodeBySurfaceRootUid;
    private patchApprovalRuntimeConfig;
    private getApprovalActionStepValue;
    private buildApprovalReturnRuntimeConfig;
    private buildApprovalReassignRuntimeConfig;
    private syncApprovalWorkflowRuntimeConfig;
    private syncApprovalNodeRuntimeConfig;
    syncApprovalRuntimeConfigForSurfaceRoot(root: any, transaction?: any): Promise<void>;
    syncApprovalRuntimeConfigForNode(uid: string, transaction?: any): Promise<void>;
    assertApprovalActionSingleton(parentUid: string, actionUse: string, transaction?: any): Promise<void>;
}
export {};
