import { CreateRoleMappingRuleDto, type ListRoleMappingRuleQueryInput, type PatchRoleMappingRuleInput } from '@n8n/api-types'; import { ProjectRepository, RoleMappingRuleRepository, RoleRepository } from '@n8n/db'; import { type EntityManager } from '@n8n/typeorm'; import type { z } from 'zod'; import { EventService } from '../../events/event.service'; import type { UserLike } from '../../events/maps/relay.event-map'; type CreateRoleMappingRuleInput = z.infer<(typeof CreateRoleMappingRuleDto)['schema']>; export type RoleMappingRuleResponse = { id: string; expression: string; role: string; type: 'instance' | 'project'; order: number; projectIds: string[]; createdAt: string; updatedAt: string; }; export type RoleMappingRuleListResponse = { count: number; items: RoleMappingRuleResponse[]; }; export declare class RoleMappingRuleService { private readonly roleMappingRuleRepository; private readonly roleRepository; private readonly projectRepository; private readonly eventService; constructor(roleMappingRuleRepository: RoleMappingRuleRepository, roleRepository: RoleRepository, projectRepository: ProjectRepository, eventService: EventService); list(query: ListRoleMappingRuleQueryInput): Promise; create(dto: CreateRoleMappingRuleInput, user: UserLike): Promise; private saveWithOrderRetry; patch({ id, dto, userId, userEmail, }: { id: string; dto: PatchRoleMappingRuleInput; userId: string; userEmail?: string; }): Promise; delete({ id, userId, userEmail, }: { id: string; userId: string; userEmail?: string; }): Promise; deleteAllOfType(type: 'instance' | 'project', tx?: EntityManager): Promise; move({ id, targetIndex, userId, userEmail, }: { id: string; targetIndex: number; userId: string; userEmail?: string; }): Promise; private applyOrder; private normalizeOrderForType; private assertOrderAvailable; private toResponse; } export {};