/**
* RBAC (Role-Based Access Control) Module
*
* Enterprise-grade RBAC implementation for React applications.
* Supports role hierarchies, permission matrices, and policy-based access control.
*
* @module auth/rbac
*
* @example
* ```tsx
* // Basic setup
* import { RBACProvider, useRBAC } from '@/lib/auth/rbac';
*
* const rbacConfig = {
* roles: [
* { id: 'admin', name: 'Admin', permissions: ['*'], priority: 100 },
* { id: 'manager', name: 'Manager', permissions: ['team:*', 'reports:*'], inherits: ['user'], priority: 50 },
* { id: 'user', name: 'User', permissions: ['profile:*', 'documents:own:*'], priority: 10 },
* ],
* defaultDecision: 'deny',
* enableCaching: true,
* };
*
* function App() {
* const { user } = useAuth();
*
* return (
*
*
*
* );
* }
*
* // Use in components
* function DocumentsPage() {
* const { canCreate, canRead, canDelete, isAdmin } = useRBAC();
*
* return (
*
* {canRead('documents') &&
}
* {canCreate('documents') &&
}
* {isAdmin &&
}
*
* );
* }
* ```
*/
export { RBACProvider, RBACContext } from './rbac-context';
export type { RBACProviderProps } from './rbac-context';
export { useRBAC, usePermissions, useRoles, useResourceAccess, usePermissionGate, useRoleGate, useAccessChecks, } from './useRBAC';
export type { UseRBACReturn } from './useRBAC';
export { RBACEngine, createRBACEngine } from './rbac-engine';
export { PermissionMatrixBuilder, createPermissionMatrixBuilder, createStandardMatrix, createHealthcareMatrix, mergePermissionMatrices, filterEntriesByRole, filterEntriesByResource, getDefinedResources, getDefinedRoles, validatePermissionMatrix, PERMISSION_ACTIONS, CRUD_ACTIONS, READ_ONLY_ACTIONS, FULL_ACCESS_ACTIONS, } from './permission-matrix';
export { RoleHierarchyManager, createRoleHierarchy, STANDARD_ROLE_HIERARCHY, HEALTHCARE_ROLE_HIERARCHY, } from './role-hierarchy';
export { ResourcePermissionManager, createResourcePermissionManager, levelGrantsAction, getMinimumLevelForAction, comparePermissionLevels, PERMISSION_LEVELS, LEVEL_ACTIONS, } from './resource-permissions';
export { PolicyEvaluator, createPolicyEvaluator } from './policy-evaluator';
export type { EvaluationContext } from './policy-evaluator';
export type { PermissionAction, PermissionScope, StructuredPermission, PermissionCondition, RoleDefinition, RoleAssignment, RoleHierarchy, PermissionMatrix, PermissionMatrixEntry, Policy, PolicySet, PolicyEffect, PolicyResult, PolicySubject, PolicyResource, PolicyCondition, AccessRequest, RequestContext, EvaluationResult, Obligation, ResourcePermission, ResourceACL, RBACConfig, RBACState, RBACContextValue, RBACAuditEvent, RBACAuditHandler, } from './types';