//! Cloud Hypervisor Service Abstraction Layer (SAL)
//!
//! A production-ready Rust library providing a complete, type-safe abstraction
//! over Cloud Hypervisor's REST API with integrated Rhai scripting support.

pub mod api;
pub mod config;
pub mod devices;
pub mod discovery;
pub mod errors;
pub mod process;
pub mod runtime;
pub mod script;
pub mod snapshot;
pub mod version;

// Re-export commonly used types
pub use api::APIClient;
pub use config::{CloudHypervisorConfig, VMConfig, VMSpec};
pub use devices::{DeviceBuilder, DiskBuilder, NetBuilder};
pub use discovery::{ProcessInfo, find_all_vm_processes, find_vm_process, is_process_running};
pub use errors::{CloudHypervisorError, Result};
pub use process::CloudHypervisorProcess;
pub use runtime::{CloudHypervisorRuntime, VMHandle, VMStatus};
pub use script::{ScriptEngine, VMBuilder};
pub use snapshot::{SnapshotInfo, SnapshotManager};
pub use version::{Capabilities, Version};

// Include unit tests from tests directory
#[cfg(test)]
#[path = "tests/unit/mod.rs"]
mod unit_tests;
