//! # OneMoney Rust SDK
//!
//! Official Rust SDK for OneMoney L1 blockchain REST API.
//!
//! ## Quick Start
//!
//! ```rust
//! use onemoney_protocol::{Client, ClientBuilder, Network};
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     // Create clients for different networks
//!     let mainnet_client = Client::mainnet()?; // Mainnet
//!     let testnet_client = Client::testnet()?; // Testnet
//!     let local_client = Client::local()?; // Local development
//!
//!     // Or use the builder pattern
//!     let client = ClientBuilder::new()
//!         .network(Network::Testnet)
//!         .timeout(std::time::Duration::from_secs(30))
//!         .build()?;
//!
//!     Ok(())
//! }
//! ```

pub mod api;
pub mod client;
pub mod error;
pub mod transport;
pub mod utils;

// Re-export payload types from requests module
pub use client::{Client, ClientBuilder, Network};
pub use error::{ConfigError, Error, Result};
pub use om_primitives_types::{
    core::chain::NamedChain,
    transaction::{Signable, payload::*},
};
pub use om_rest_types::{RestSignature as Signature, crypto, crypto::*, *};
pub use transport::*;
pub use utils::*;
