#[cfg(feature = "server")]
pub mod server;

#[cfg(feature = "client")]
pub mod client;

/// Common utilities for all modes, including column types and output formatting.
pub mod common;

pub mod delete;
pub mod diff;
pub mod export;
pub mod generate_config;
pub mod get;
pub mod import;
pub mod info;
pub mod list;
pub mod save;
pub mod status;
pub mod status_plugins;
pub mod update;

/// Column types, output formats, and formatting utilities shared across modes.
pub use common::{ColumnType, OutputFormat, format_size, settings_output_format};

/// Deletes items from the database by ID.
pub use delete::mode_delete;

/// Compares two items and shows differences.
pub use diff::mode_diff;

/// Exports an item to data and metadata files.
pub use export::mode_export;

/// Generates a default configuration file.
pub use generate_config::mode_generate_config;

/// Retrieves and outputs item content.
pub use get::mode_get;

/// Imports an item from metadata and data files.
pub use import::mode_import;

/// Displays detailed information about items.
pub use info::mode_info;

/// Lists items with optional filtering.
pub use list::mode_list;

/// Saves new item content with optional tags and metadata.
pub use save::mode_save;

#[cfg(feature = "server")]
/// Starts the HTTP server for REST API access.
pub use server::mode_server;

/// Shows status of directories and compression support.
pub use status::mode_status;

/// Lists available plugins and their configurations.
pub use status_plugins::mode_status_plugins;

/// Updates an item's tags and metadata by ID.
pub use update::mode_update;
