import { PrismaClient } from "@prisma/client"; import { PermissionService } from "./PermissionService"; import { PermissionResponse, PermissionValidation, RBACContext, RBACConfig, Resource, Action } from "../types/rbac"; export declare class RBACService { private prisma; private permissionService; private cache; private config; constructor(prisma: PrismaClient, config?: Partial); /** * Verificar si un usuario tiene un permiso específico */ checkPermission(userId: string, organizationId: string, resource: Resource, action: Action): Promise; /** * Verificar múltiples permisos de una vez */ checkMultiplePermissions(userId: string, organizationId: string, permissions: Array<{ resource: Resource; action: Action; }>): Promise<{ hasAllPermissions: boolean; results: Array<{ permission: string; hasPermission: boolean; }>; }>; /** * Obtener contexto RBAC completo de un usuario */ getRBACContext(userId: string, organizationId: string): Promise; /** * Verificar si un usuario tiene un rol específico o superior */ hasRoleOrHigher(userId: string, organizationId: string, requiredRole: string): Promise; /** * Obtener todos los permisos de un usuario con cache */ getUserPermissions(userId: string, organizationId: string): Promise; /** * Limpiar cache de permisos */ clearCache(userId?: string, organizationId?: string): void; /** * Obtener estadísticas de permisos */ getPermissionStats(organizationId: string): Promise<{ totalPermissions: number; totalRoleAssignments: number; permissionsByResource: Record; permissionsByRole: Record; }>; /** * Validar configuración de permisos */ validatePermissionConfiguration(organizationId: string): Promise<{ isValid: boolean; issues: string[]; }>; /** * Obtener el rol de un usuario */ private getUserRole; /** * Obtener permisos del cache */ private getCachedPermissions; /** * Cachear permisos */ private cachePermissions; /** * Obtener el servicio de permisos */ getPermissionService(): PermissionService; /** * Actualizar configuración */ updateConfig(config: Partial): void; } //# sourceMappingURL=RBACService.d.ts.map