//! Parameters for configuring the rpc more granularity via CLI

/// NetworkArg struct for configuring the network
mod network;
pub use network::{DefaultDiscoveryArgs, DefaultNetworkArgs, DiscoveryArgs, NetworkArgs};

/// RpcServerArg struct for configuring the RPC
mod rpc_server;
pub use rpc_server::{DefaultRpcServerArgs, RpcServerArgs};

/// `RpcStateCacheArgs` struct for configuring RPC state cache
mod rpc_state_cache;
pub use rpc_state_cache::RpcStateCacheArgs;

/// DebugArgs struct for debugging purposes
mod debug;
pub use debug::{DebugArgs, InvalidBlockHookType, InvalidBlockSelection};

/// DatabaseArgs struct for configuring the database
mod database;
pub use database::DatabaseArgs;

/// LogArgs struct for configuring the logger
mod log;
pub use log::{ColorMode, DefaultLogArgs, LogArgs, Verbosity};

/// `TraceArgs` for tracing and spans support
mod trace;
pub use trace::{DefaultTraceValues, OtlpInitStatus, OtlpLogsStatus, TraceArgs};

/// `MetricArgs` to configure metrics.
mod metric;
pub use metric::MetricArgs;

/// `PayloadBuilderArgs` struct for configuring the payload builder
mod payload_builder;
pub use payload_builder::{DefaultPayloadBuilderValues, PayloadBuilderArgs};

/// Stage related arguments
mod stage;
pub use stage::StageEnum;

/// Gas price oracle related arguments
mod gas_price_oracle;
pub use gas_price_oracle::GasPriceOracleArgs;

/// TxPoolArgs for configuring the transaction pool
mod txpool;
pub use txpool::{DefaultTxPoolValues, TxPoolArgs};

/// DevArgs for configuring the dev testnet
mod dev;
pub use dev::{DefaultDevArgs, DevArgs};

/// PruneArgs for configuring the pruning and full node
mod pruning;
pub use pruning::{DefaultPruningValues, PruneConfigKind, PruningArgs};

/// DatadirArgs for configuring data storage paths
mod datadir_args;
pub use datadir_args::DatadirArgs;

/// EngineArgs for configuring the engine
mod engine;
pub use engine::{DefaultEngineValues, EngineArgs};

/// `EraArgs` for configuring ERA files import.
mod era;
pub use era::{DefaultEraHost, EraArgs, EraSourceArgs};

/// `StaticFilesArgs` for configuring static files.
mod static_files;
pub use static_files::{StaticFilesArgs, MINIMAL_BLOCKS_PER_FILE};

/// `StorageArgs` for configuring storage settings.
mod storage;
pub use storage::{DefaultStorageValues, StorageArgs};

/// `JitArgs` for configuring JIT compilation of EVM bytecode.
mod jit;
pub use jit::JitArgs;

mod error;
pub mod types;
