#[cfg(feature = "enhanced-rbac")]
pub mod service;
#[cfg(feature = "enhanced-rbac")]
pub mod middleware;
#[cfg(feature = "enhanced-rbac")]
pub mod context;
#[cfg(feature = "enhanced-rbac")]
mod hierarchy_tests_fixed;
#[cfg(feature = "enhanced-rbac")]
pub use role_system::{
Permission, Resource, Role, Subject,
async_support::AsyncRoleSystem,
storage::{MemoryStorage, Storage},
};
#[cfg(not(feature = "enhanced-rbac"))]
pub use crate::permissions::PermissionChecker;
#[cfg(not(feature = "enhanced-rbac"))]
pub use crate::authorization as legacy_authorization;
#[cfg(feature = "enhanced-rbac")]
pub use service::AuthorizationService;
#[cfg(feature = "enhanced-rbac")]
pub use middleware::{
conditional_permission_middleware, rbac_middleware, require_permission,
role_elevation_middleware,
};
#[cfg(feature = "enhanced-rbac")]
pub use context::{
AuthorizationContext, ConditionalEvaluator, ConnectionType, ContextBuilder, DayType,
DeviceType, SecurityLevel, TimeOfDay,
};