import { ErrorService } from 'src/error/error.service';
import { Repository } from 'typeorm';
import { CreateRoleDto } from './dto/create-role.dto';
import { LinkSingleType } from './dto/link-role-single-permission.dto';
import { UpdateRoleDto } from './dto/update-role.dto';
import { PermissionEntity } from './entities/permission.entity';
import { RoleMapPermissionEntity } from './entities/role-map-permission.entity';
import { RoleEntity } from './entities/role.entity';
export declare class RoleService {
    private roleRepository;
    private permissionRepository;
    private mappingRepository;
    private error;
    constructor(roleRepository: Repository<RoleEntity>, permissionRepository: Repository<PermissionEntity>, mappingRepository: Repository<RoleMapPermissionEntity>, error: ErrorService);
    getRoles(): Promise<RoleEntity[]>;
    getPermissions(): Promise<PermissionEntity[]>;
    addRole(dto: CreateRoleDto): Promise<RoleEntity>;
    updateRole(roleId: number, dto: UpdateRoleDto): Promise<import("typeorm").UpdateResult>;
    linkPermissionsToRole(roleId: number, newPermissionsId: number[]): Promise<void>;
    linkSinglePermissionToRole(roleId: number, permissionId: number, type: LinkSingleType): Promise<void>;
    private _addLinks;
    private _deleteLinks;
}
