mod amount;
mod mpp;
pub mod sse;
#[cfg(feature = "tower")]
pub mod middleware;
#[cfg(feature = "axum")]
pub mod axum;
#[cfg(feature = "tempo")]
mod tempo;
#[cfg(feature = "stripe")]
mod stripe;
pub use crate::protocol::traits::{ChargeMethod, ErrorCode, SessionMethod, VerificationError};
pub use amount::{parse_dollar_amount, AmountError};
pub use mpp::{Mpp, SessionVerifyResult};
#[cfg(feature = "tempo")]
pub use tempo::{
tempo, tempo_provider, SessionChannelStore, SessionMethodConfig, TempoBuilder, TempoChargeExt,
TempoChargeMethod, TempoConfig, TempoMethodDetails, TempoProvider, TempoSessionMethod,
CHAIN_ID, METHOD_NAME,
};
#[cfg(feature = "stripe")]
pub use stripe::{
stripe, StripeBuilder, StripeChargeMethod, StripeChargeOptions, StripeConfig,
StripeCredentialPayload, StripeMethodDetails,
};
#[derive(Debug, Default)]
pub struct SessionChallengeOptions<'a> {
pub unit_type: Option<&'a str>,
pub suggested_deposit: Option<&'a str>,
pub fee_payer: bool,
pub description: Option<&'a str>,
pub expires: Option<&'a str>,
}
#[derive(Debug, Default)]
pub struct ChargeOptions<'a> {
pub description: Option<&'a str>,
pub external_id: Option<&'a str>,
pub expires: Option<&'a str>,
pub fee_payer: bool,
}