import type { CreateWorkflowReviewRequestDto, GetWorkflowReviewEligibleReviewersQueryDto, ListWorkflowReviewRequestsQueryDto, UpdateWorkflowReviewRequestVersionDto, WorkflowReviewEligibleReviewersList, WorkflowReviewRequestList, WorkflowReviewRequestSummary, ListWorkflowReviewInboxQueryDto, ListWorkflowReviewInboxResponse, GetWorkflowReviewInboxSummaryResponse } from '@n8n/api-types';
import { LicenseState, Logger } from '@n8n/backend-common';
import { DbLockService, SharedWorkflowRepository, UserRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
import { CollaborationService } from '../../collaboration/collaboration.service';
import { ProjectService } from '../../services/project.service.ee';
import { RoleService } from '../../services/role.service';
import { WorkflowReviewPolicyService } from '../../services/workflow-review-policy.service';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import { WorkflowHistoryService } from '../../workflows/workflow-history/workflow-history.service';
export declare class WorkflowReviewRequestService {
    private readonly logger;
    private readonly workflowReviewPolicyService;
    private readonly workflowFinderService;
    private readonly workflowHistoryService;
    private readonly sharedWorkflowRepository;
    private readonly workflowReviewRequestRepository;
    private readonly workflowReviewRequestWorkflowRepository;
    private readonly workflowReviewRequestAuthorRepository;
    private readonly workflowReviewRequestReviewerRepository;
    private readonly userRepository;
    private readonly roleService;
    private readonly projectService;
    private readonly licenseState;
    private readonly dbLockService;
    private readonly collaborationService;
    constructor(logger: Logger, workflowReviewPolicyService: WorkflowReviewPolicyService, workflowFinderService: WorkflowFinderService, workflowHistoryService: WorkflowHistoryService, sharedWorkflowRepository: SharedWorkflowRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, userRepository: UserRepository, roleService: RoleService, projectService: ProjectService, licenseState: LicenseState, dbLockService: DbLockService, collaborationService: CollaborationService);
    private findEligibleReviewers;
    list(user: User, query: ListWorkflowReviewRequestsQueryDto): Promise<WorkflowReviewRequestList>;
    getEligibleReviewers(user: User, query: GetWorkflowReviewEligibleReviewersQueryDto): Promise<WorkflowReviewEligibleReviewersList>;
    private toEligibleReviewer;
    create(user: User, dto: CreateWorkflowReviewRequestDto): Promise<WorkflowReviewRequestSummary>;
    updateVersion(user: User, workflowReviewRequestId: string, dto: UpdateWorkflowReviewRequestVersionDto): Promise<WorkflowReviewRequestSummary>;
    private broadcastReviewStateChanged;
    private assertRequestUpdatable;
    private toSummary;
    listForInbox(user: User, query: ListWorkflowReviewInboxQueryDto): Promise<ListWorkflowReviewInboxResponse>;
    private hydrateParticipants;
    getInboxSummaryForUser(user: User): Promise<GetWorkflowReviewInboxSummaryResponse>;
    private assertFeatureAvailable;
    resolveAccessibleProjectIds(user: User): Promise<string[] | null>;
    private encodeInboxCursor;
    private decodeInboxCursor;
    private toInboxItem;
}
