import type { CreateWorkflowReviewRequestDto, DecideWorkflowReviewRequestDto, DecideWorkflowReviewRequestResponse, GetWorkflowReviewEligibleReviewersQueryDto, ListWorkflowReviewRequestsQueryDto, UpdateWorkflowReviewRequestVersionDto, WorkflowReviewEligibleReviewersList, WorkflowReviewRequestList, WorkflowReviewRequestSummary } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { DbLockService, SharedWorkflowRepository, UserRepository, WorkflowHistoryRepository, WorkflowPublishHistoryRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestRepository, WorkflowRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
import { CollaborationService } from '../../collaboration/collaboration.service';
import { RoleService } from '../../services/role.service';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import { WorkflowHistoryService } from '../../workflows/workflow-history/workflow-history.service';
import { WorkflowService } from '../../workflows/workflow.service';
import { WorkflowReviewDecisionEligibilityService } from './workflow-review-decision-eligibility.service';
import { WorkflowReviewFeatureGate } from './workflow-review-feature-gate.service';
export declare class WorkflowReviewRequestService {
    private readonly logger;
    private readonly featureGate;
    private readonly workflowFinderService;
    private readonly workflowHistoryService;
    private readonly workflowHistoryRepository;
    private readonly workflowRepository;
    private readonly sharedWorkflowRepository;
    private readonly workflowPublishHistoryRepository;
    private readonly workflowReviewRequestRepository;
    private readonly workflowReviewRequestWorkflowRepository;
    private readonly workflowReviewRequestAuthorRepository;
    private readonly workflowReviewRequestReviewerRepository;
    private readonly userRepository;
    private readonly decisionEligibilityService;
    private readonly roleService;
    private readonly dbLockService;
    private readonly collaborationService;
    private readonly workflowService;
    constructor(logger: Logger, featureGate: WorkflowReviewFeatureGate, workflowFinderService: WorkflowFinderService, workflowHistoryService: WorkflowHistoryService, workflowHistoryRepository: WorkflowHistoryRepository, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository, workflowPublishHistoryRepository: WorkflowPublishHistoryRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, userRepository: UserRepository, decisionEligibilityService: WorkflowReviewDecisionEligibilityService, roleService: RoleService, dbLockService: DbLockService, collaborationService: CollaborationService, workflowService: WorkflowService);
    private findEligibleReviewers;
    list(user: User, query: ListWorkflowReviewRequestsQueryDto): Promise<WorkflowReviewRequestList>;
    private toWorkflowScopedItems;
    private resolveDecisionActors;
    private pickDecisionActor;
    private resolveApprovedPublicationStates;
    private pickApprovedPublicationState;
    getEligibleReviewers(user: User, query: GetWorkflowReviewEligibleReviewersQueryDto): Promise<WorkflowReviewEligibleReviewersList>;
    private nameVersion;
    private assertWorkflowStillReviewable;
    create(user: User, dto: CreateWorkflowReviewRequestDto): Promise<WorkflowReviewRequestSummary>;
    updateVersion(user: User, workflowReviewRequestId: string, dto: UpdateWorkflowReviewRequestVersionDto): Promise<WorkflowReviewRequestSummary>;
    decide(user: User, workflowReviewRequestId: string, dto: DecideWorkflowReviewRequestDto): Promise<DecideWorkflowReviewRequestResponse>;
    private publishApprovedVersion;
    private assertDecisionAllowed;
    private broadcastReviewStateChanged;
    private assertRequestUpdatable;
    private toSummary;
}
