import { RoleService } from './role.service';
import { CreateRoleDto, UpdateRoleDto, AssignPermissionsDto } from './dto';
import { ModuleName } from '../../entities/role-permission.entity';
import { PaginationDto } from '../../common/dto/pagination.dto';
export declare class RoleController {
    private readonly roleService;
    constructor(roleService: RoleService);
    findAll(query: PaginationDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        id: any;
        name: any;
        description: any;
        is_system: any;
        created_at: any;
        updated_at: any;
        permissions: any;
    }[]>>;
    lookup(): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities").RoleEntity[]>>;
    findById(id: string): Promise<import("../../common/responses/api-response").ApiResponse<{
        id: any;
        name: any;
        description: any;
        is_system: any;
        created_at: any;
        updated_at: any;
        permissions: any;
    }>>;
    getPermissionsMatrix(id: string): Promise<import("../../common/responses/api-response").ApiResponse<{
        module: ModuleName;
        access_level: string;
    }[]>>;
    create(dto: CreateRoleDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        id: string;
        message: string;
    }>>;
    update(id: string, dto: UpdateRoleDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        id: string;
        message: string;
    }>>;
    assignPermissions(id: string, dto: AssignPermissionsDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        message: string;
    }>>;
    remove(id: string): Promise<import("../../common/responses/api-response").ApiResponse<{
        message: string;
    }>>;
}
