import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { CreateRoleDto, UpdateRoleDto, RoleQueryDto } from './dto/role.dto';
import { AIToolsService } from '../ai-tools/ai-tools.service';
export declare class RolesService {
    private prisma;
    private aiToolsService;
    private readonly logger;
    constructor(prisma: PrismaService, aiToolsService: AIToolsService);
    findAll(query?: RoleQueryDto): Promise<{
        userCount: number;
        permissionCount: number;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isBuiltIn: boolean;
        enabled: boolean;
    }[]>;
    findOne(id: string): Promise<{
        permissions: any;
        users: any;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isBuiltIn: boolean;
        enabled: boolean;
    }>;
    create(createRoleDto: CreateRoleDto): Promise<{
        permissions: {
            id: string;
            createdAt: Date;
            module: string | null;
            action: string;
            updatedAt: Date;
            description: string | null;
            resource: string;
            isBuiltIn: boolean;
        }[];
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isBuiltIn: boolean;
        enabled: boolean;
    }>;
    update(id: string, updateRoleDto: UpdateRoleDto): Promise<{
        _count: {
            permissions: number;
            users: number;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isBuiltIn: boolean;
        enabled: boolean;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    getPermissions(id: string): Promise<any>;
    assignPermissions(id: string, permissionIds: string[]): Promise<{
        roleId: string;
        permissionCount: any;
    }>;
    getUsers(id: string): Promise<any>;
}
