import { DataSource } from 'typeorm';
import { WorkflowConfigurationService } from './workflow-configuration.service';
import { WorkflowValidationService } from './workflow-validation.service';
import { AppLoggerService } from 'src/common/services/logger.service';
export type OperationType = 'create' | 'read' | 'update' | 'delete';
export declare class WorkflowPermissionValidationService {
    private readonly dataSource;
    private readonly workflowConfigurationService;
    private readonly workflowValidationService;
    private readonly logger;
    constructor(dataSource: DataSource, workflowConfigurationService: WorkflowConfigurationService, workflowValidationService: WorkflowValidationService, logger: AppLoggerService);
    validateSectionPermissions(registrationId: number | undefined, programTypeKey: string, stageKey: string, userRoles: string[], operation: OperationType, sectionKeys: string[], workflowId?: number): Promise<boolean>;
    private checkOperationPermission;
    private checkUserHasRole;
    private evaluatePermissionCondition;
    private evaluateCondition;
    determineSectionsFromAnswers(answers: any[], programId: number): Promise<string[]>;
    validateStageTransitionPermissions(registrationId: number | undefined, programTypeKey: string, targetStageKey: string, sectionKeys: string[], userRoles: string[], operation: OperationType, workflowId?: number): Promise<boolean>;
}
