pub mod jwt;
pub mod middleware;
pub mod oauth;
pub mod password;
pub mod repository;

pub mod routes;
pub mod service;
pub mod two_factor;

pub use jwt::JwtService;
pub use middleware::auth_middleware;
pub use oauth::OAuthService;
pub use password::PasswordService;

pub use routes::create_auth_routes;
pub use service::AuthService;
pub use two_factor::TwoFactorService;

// RBAC functionality moved to crate::rbac module
#[cfg(feature = "rbac")]
pub use crate::rbac::{
    rbac_middleware, require_database_access, require_file_access, ConditionalRBACService,
    NoOpRBACService, RBACConfigLoader, RBACRepository, RBACService,
};
