pub(crate) mod batch;
pub(crate) mod classic;
pub(crate) mod contract;
pub(crate) mod degradation;
pub(crate) mod device_storage;
pub(crate) mod error;
pub(crate) mod intent;
pub(crate) mod kernel;
pub mod multi_device;
pub(crate) mod policy;
pub mod recovery;
pub(crate) mod recovery_storage;
pub(crate) mod replay;
pub(crate) mod secp256r1_auth;
pub(crate) mod session_builder;
pub(crate) mod signer;
pub(crate) mod storage;
#[cfg(any(test, feature = "testutils"))]
pub(crate) mod testing;
pub(crate) mod traits;
pub(crate) mod types;
pub mod passkey {
pub use super::secp256r1_auth::{verify_secp256r1, Secp256r1Key, Secp256r1Storage};
}
pub use batch::BatchBuilder;
pub use classic::ClassicAccount;
pub use contract::ContractAccount;
pub use degradation::{authorize_with_fallback, batch_or_sequential, require_capability};
pub use error::AccountError;
pub use kernel::AccountKernel;
pub use multi_device::{DeviceKey, DeviceManager, DevicePolicy, MultiDeviceProvider};
pub use recovery::{
Guardian, RecoverableAccount, RecoveryConfig, RecoveryProvider, RecoveryRequest,
};
pub use replay::ReplayProtection;
pub use secp256r1_auth::{verify_secp256r1, Secp256r1Key, Secp256r1Storage};
pub use session_builder::SessionBuilder;
pub use storage::SessionStorage;
pub use traits::{CougrAccount, IntentAccount, SessionKeyProvider};
pub use types::{AccountCapabilities, GameAction, SessionKey, SessionScope};
pub use device_storage::DeviceStorage;
pub use intent::{
AuthMethod, AuthResult, IntentProof, IntentProofKind, IntentSigner, SignedIntent, SignerRef,
};
pub use policy::{
ActiveDevicePolicy, GuardianPolicy, IntentContext, IntentExpiryPolicy, Policy, RecoveryContext,
SessionContext, SessionPolicy,
};
pub use recovery_storage::RecoveryStorage;
pub use signer::{AccountSigner, DirectAuthSigner, Secp256r1PasskeySigner, SessionAuthSigner};
#[cfg(any(test, feature = "testutils"))]
pub use testing::MockAccount;