// Code generated by ndpgen. DO NOT EDIT.
//
//! Navidrome Host Function Wrappers for Rust Plugins
//!
//! This crate provides idiomatic Rust wrappers for all Navidrome host services.
//! It is auto-generated by the ndpgen tool and should not be edited manually.
//!
//! # Usage
//!
//! Add this crate as a dependency in your plugin's Cargo.toml:
//!
//! ```toml
//! [dependencies]
//! nd-host = { path = "../../host/rust" }
//! ```
//!
//! Then import the services you need:
//!
//! ```ignore
//! use nd_host::{cache, scheduler};
//!
//! fn my_plugin_function() -> Result<(), extism_pdk::Error> {
//!     // Use the cache service
//!     cache::set_string("my_key", "my_value", 3600)?;
//!
//!     // Schedule a recurring task
//!     scheduler::schedule_recurring("@every 5m", "payload", "task_id")?;
//!
//!     Ok(())
//! }
//! ```
//!
//! # Available Services
//!
//! - [`artwork`] - provides artwork public URL generation capabilities for plugins.
//! - [`cache`] - provides in-memory TTL-based caching capabilities for plugins.
//! - [`config`] - provides access to plugin configuration values.
//! - [`http`] - provides outbound HTTP request capabilities for plugins.
//! - [`kvstore`] - provides persistent key-value storage for plugins.
//! - [`library`] - provides access to music library metadata for plugins.
//! - [`scheduler`] - provides task scheduling capabilities for plugins.
//! - [`subsonicapi`] - provides access to Navidrome's Subsonic API from plugins.
//! - [`task`] - provides persistent task queues for plugins.
//! - [`users`] - provides access to user information for plugins.
//! - [`websocket`] - provides WebSocket communication capabilities for plugins.

#[doc(hidden)]
mod nd_host_artwork;
/// provides artwork public URL generation capabilities for plugins.
pub mod artwork {
    pub use super::nd_host_artwork::*;
}

#[doc(hidden)]
mod nd_host_cache;
/// provides in-memory TTL-based caching capabilities for plugins.
pub mod cache {
    pub use super::nd_host_cache::*;
}

#[doc(hidden)]
mod nd_host_config;
/// provides access to plugin configuration values.
pub mod config {
    pub use super::nd_host_config::*;
}

#[doc(hidden)]
mod nd_host_http;
/// provides outbound HTTP request capabilities for plugins.
pub mod http {
    pub use super::nd_host_http::*;
}

#[doc(hidden)]
mod nd_host_kvstore;
/// provides persistent key-value storage for plugins.
pub mod kvstore {
    pub use super::nd_host_kvstore::*;
}

#[doc(hidden)]
mod nd_host_library;
/// provides access to music library metadata for plugins.
pub mod library {
    pub use super::nd_host_library::*;
}

#[doc(hidden)]
mod nd_host_scheduler;
/// provides task scheduling capabilities for plugins.
pub mod scheduler {
    pub use super::nd_host_scheduler::*;
}

#[doc(hidden)]
mod nd_host_subsonicapi;
/// provides access to Navidrome's Subsonic API from plugins.
pub mod subsonicapi {
    pub use super::nd_host_subsonicapi::*;
}

#[doc(hidden)]
mod nd_host_task;
/// provides persistent task queues for plugins.
pub mod task {
    pub use super::nd_host_task::*;
}

#[doc(hidden)]
mod nd_host_users;
/// provides access to user information for plugins.
pub mod users {
    pub use super::nd_host_users::*;
}

#[doc(hidden)]
mod nd_host_websocket;
/// provides WebSocket communication capabilities for plugins.
pub mod websocket {
    pub use super::nd_host_websocket::*;
}

// Re-export commonly used types from extism-pdk for convenience
pub use extism_pdk::Error;
