pub mod config;
pub mod password;
pub mod tokens;
pub mod api_keys;
pub mod key_rotation;
#[cfg(feature = "oauth")]
pub mod oauth;
pub use config::{
AuthConfig, PasetoGenerationConfig, PasswordConfig, RefreshTokenConfig, TokenGenerationConfig,
};
#[cfg(feature = "oauth")]
pub use config::{ApiKeyConfig, OAuthConfig, OAuthProviderConfig};
pub use password::PasswordHasher;
pub use tokens::paseto_generator::PasetoGenerator;
pub use tokens::refresh::{RefreshTokenData, RefreshTokenMetadata, RefreshTokenStorage};
pub use tokens::{TokenGenerator, TokenPair};
#[cfg(feature = "cache")]
pub use tokens::refresh::RedisRefreshStorage;
#[cfg(feature = "database")]
pub use tokens::refresh::PgRefreshStorage;
#[cfg(feature = "turso")]
pub use tokens::refresh::TursoRefreshStorage;
#[cfg(feature = "surrealdb")]
pub use tokens::refresh::SurrealDbRefreshStorage;
#[cfg(feature = "jwt")]
pub use tokens::jwt_generator::JwtGenerator;
pub use api_keys::{ApiKey, ApiKeyGenerator, ApiKeyStorage};
#[cfg(feature = "cache")]
pub use api_keys::RedisApiKeyStorage;
#[cfg(feature = "database")]
pub use api_keys::PgApiKeyStorage;
#[cfg(feature = "turso")]
pub use api_keys::TursoApiKeyStorage;
#[cfg(feature = "surrealdb")]
pub use api_keys::SurrealDbApiKeyStorage;
#[cfg(feature = "oauth")]
pub use oauth::{
generate_state, CustomOidcConfig, CustomOidcProvider, GitHubProvider, GoogleProvider,
OAuthProvider, OAuthStateManager, OAuthTokens, OAuthUserInfo, StateData,
};
#[cfg(all(feature = "oauth", feature = "cache"))]
pub use oauth::RedisOAuthStateManager;
pub use key_rotation::{
CachedKey, KeyFormat, KeyManager, KeyRotationConfig, KeyRotationStorage, KeyStatus,
SigningKeyMetadata,
};
#[cfg(feature = "database")]
pub use key_rotation::PgKeyRotationStorage;
#[cfg(feature = "turso")]
pub use key_rotation::TursoKeyRotationStorage;
#[cfg(feature = "surrealdb")]
pub use key_rotation::SurrealKeyRotationStorage;