pub mod jwt;
pub mod middleware;
pub mod oauth;
pub mod otp;
pub mod otp_adapter;
pub mod otp_store;
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 otp::OtpService;
#[cfg(all(feature = "auth", feature = "leptos-hydration"))]
pub use otp_adapter::OtpServiceAdapter;
pub use otp_store::{MemoryOtpStore, OtpStore};
pub use password::PasswordService;
pub use routes::create_auth_routes;
pub use service::AuthService;
pub use two_factor::TwoFactorService;

// Database-driven RBAC types (from crate::rbac, requires auth feature)
#[cfg(feature = "auth")]
pub use crate::rbac::{ConditionalRBACService, RBACConfigLoader};
