pub use polkadot_node_primitives::NODE_VERSION;
use clap::Parser;
use std::path::PathBuf;
#[allow(missing_docs)]
#[derive(Debug, Parser)]
pub enum Subcommand {
#[deprecated(
note = "build-spec command will be removed after 1/04/2026. Use export-chain-spec command instead"
)]
BuildSpec(sc_cli::BuildSpecCmd),
ExportChainSpec(sc_cli::ExportChainSpecCmd),
CheckBlock(sc_cli::CheckBlockCmd),
ExportBlocks(sc_cli::ExportBlocksCmd),
ExportState(sc_cli::ExportStateCmd),
ImportBlocks(sc_cli::ImportBlocksCmd),
PurgeChain(sc_cli::PurgeChainCmd),
Revert(sc_cli::RevertCmd),
#[command(subcommand)]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
#[command(subcommand)]
Key(sc_cli::KeySubcommand),
ChainInfo(sc_cli::ChainInfoCmd),
}
#[allow(missing_docs)]
#[derive(Debug, Parser)]
#[group(skip)]
pub struct RunCmd {
#[clap(flatten)]
pub base: sc_cli::RunCmd,
#[arg(long = "force-kusama")]
pub force_kusama: bool,
#[arg(long = "force-westend")]
pub force_westend: bool,
#[arg(long = "force-rococo")]
pub force_rococo: bool,
#[arg(long)]
pub no_beefy: bool,
#[arg(long = "insecure-validator-i-know-what-i-do", requires = "validator")]
pub insecure_validator: bool,
#[arg(long)]
pub force_authoring_backoff: bool,
#[arg(long)]
pub pyroscope_server: Option<String>,
#[arg(long)]
pub no_hardware_benchmarks: bool,
#[arg(long)]
pub overseer_channel_capacity_override: Option<usize>,
#[arg(long, value_name = "PATH")]
pub workers_path: Option<PathBuf>,
#[arg(long)]
pub execute_workers_max_num: Option<usize>,
#[arg(long)]
pub prepare_workers_soft_max_num: Option<usize>,
#[arg(long)]
pub prepare_workers_hard_max_num: Option<usize>,
#[arg(long, hide = true)]
pub disable_worker_version_check: bool,
#[arg(long)]
pub keep_finalized_for: Option<u32>,
#[arg(long, hide = true)]
pub collator_protocol_hold_off: Option<u64>,
#[arg(long, hide = true, default_value = "false")]
pub experimental_collator_protocol: bool,
#[arg(long, requires = "experimental_collator_protocol", requires = "validator")]
pub collator_reputation_persist_interval: Option<u64>,
}
#[allow(missing_docs)]
#[derive(Debug, Parser)]
pub struct Cli {
#[command(subcommand)]
pub subcommand: Option<Subcommand>,
#[clap(flatten)]
pub run: RunCmd,
#[clap(flatten)]
pub storage_monitor: sc_storage_monitor::StorageMonitorParams,
}