use crate::host::error::HostApiError;
use crate::services::installation_monitor::types::InstallationCallback;
use async_trait::async_trait;
#[async_trait]
pub trait InstallationMonitor: Send + Sync {
async fn start_watching(&self) -> Result<(), HostApiError>;
async fn stop_watching(&self) -> Result<(), HostApiError>;
fn is_watching(&self) -> bool;
fn register_callback(&self, id: &str, callback: InstallationCallback);
fn unregister_callback(&self, id: &str);
fn update_watch_paths(&self, paths: Vec<String>);
fn update_debounce_secs(&self, secs: f64);
}