import { CreateRoleDto, RoleGetQueryDto, RoleListQueryDto, UpdateRoleDto } from '@n8n/api-types';
import type { RoleAssignmentsResponse, RoleProjectMembersResponse } from '@n8n/api-types';
import { AuthenticatedRequest } from '@n8n/db';
import { Role as RoleDTO } from '@n8n/permissions';
import { EventService } from '../events/event.service';
import { RoleService } from '../services/role.service';
export declare class RoleController {
    private readonly roleService;
    private readonly eventService;
    constructor(roleService: RoleService, eventService: EventService);
    getAllRoles(_req: AuthenticatedRequest, _res: Response, query: RoleListQueryDto): Promise<Record<string, RoleDTO[]>>;
    getRoleProjectMembers(_req: AuthenticatedRequest, _res: Response, slug: string, projectId: string): Promise<RoleProjectMembersResponse>;
    getRoleAssignments(_req: AuthenticatedRequest, _res: Response, slug: string): Promise<RoleAssignmentsResponse>;
    getRoleBySlug(_req: AuthenticatedRequest, _res: Response, slug: string, query: RoleGetQueryDto): Promise<RoleDTO>;
    updateRole(req: AuthenticatedRequest, _res: Response, slug: string, updateRole: UpdateRoleDto): Promise<RoleDTO>;
    deleteRole(req: AuthenticatedRequest, _res: Response, slug: string): Promise<RoleDTO>;
    createRole(req: AuthenticatedRequest, _res: Response, createRole: CreateRoleDto): Promise<RoleDTO>;
}
