#![allow(async_fn_in_trait)]
pub mod auth;
pub mod domain;
pub mod error;
pub mod ports;
pub mod rbac;
pub mod session;
pub use auth::{
AccessToken, Claims, LoginAuthMaterial, LoginInput, LoginService, OAuthLoginOutcome,
OAuthLoginService, PasswordHash, RefreshAuthMaterial, RefreshInput, RefreshService,
RegisterAuthMaterial, RegisterInput, RegisterResult, RegisterService, RevokeAllSessionsInput,
RevokeAllSessionsService, RevokeResult, RevokeSessionInput, RevokeSessionService, TokenPurpose,
};
pub use domain::{
DisplayName, Email, ExternalIdentity, LoginIdentifier, OAuthProviderKind, Password, RoleId,
SessionId, Tenant, TenantAuthPolicy, TenantId, TenantOAuthProviderConfig, TenantSettings, User,
UserId, UserStatus, Username, VerifiedExternalProfile,
};
pub use error::{AuthError, NythosResult};
pub use ports::{
ExternalIdentityRepository, NewUser, PasswordHasher, RefreshTokenRotation, RevocationChecker,
RoleAssignmentInput, RoleRepository, SessionRecord, SessionStore,
TenantOAuthProviderConfigPort, TenantPolicyPort, TokenSigner, UserCredentials, UserRepository,
};
pub use rbac::{Permission, Role, RoleAssignment, RoleRegistry};
pub use session::{RefreshToken, Session};