import { PrismaClient } from "@prisma/client"; import { CreatePermissionRequest, AssignPermissionRequest, PermissionResponse, RolePermissionResponse, BulkPermissionAssignment, BulkPermissionResponse, PermissionValidation, PermissionString } from "../types/rbac"; export declare class PermissionService { private prisma; constructor(prisma: PrismaClient); /** * Crear un nuevo permiso */ createPermission(data: CreatePermissionRequest, organizationId?: string): Promise; /** * Obtener todos los permisos de una organización */ getPermissions(organizationId?: string): Promise; /** * Obtener un permiso por ID */ getPermissionById(id: string): Promise; /** * Actualizar un permiso */ updatePermission(id: string, data: Partial): Promise; /** * Eliminar un permiso */ deletePermission(id: string): Promise; /** * Asignar un permiso a un rol */ assignPermissionToRole(data: AssignPermissionRequest, organizationId?: string): Promise; /** * Revocar un permiso de un rol */ revokePermissionFromRole(role: string, permissionId: string, organizationId?: string): Promise; /** * Obtener permisos de un rol */ getRolePermissions(role: string, organizationId?: string): Promise; /** * Obtener roles que tienen un permiso específico */ getRolesWithPermission(permissionId: string, organizationId?: string): Promise; /** * Asignar múltiples permisos a un rol */ bulkAssignPermissions(data: BulkPermissionAssignment, organizationId?: string): Promise; /** * Verificar si un usuario tiene un permiso específico */ checkUserPermission(userId: string, organizationId: string, requiredPermission: PermissionString): Promise; /** * Obtener todos los permisos de un usuario en una organización */ getUserPermissions(userId: string, organizationId: string): Promise; /** * Crear permisos por defecto para una organización */ createDefaultPermissions(organizationId: string): Promise; /** * Mapear PrismaPermission a PermissionResponse */ private mapToPermissionResponse; /** * Mapear PrismaRolePermission a RolePermissionResponse */ private mapToRolePermissionResponse; } //# sourceMappingURL=PermissionService.d.ts.map