pub trait ModuleProvider: Send + Sync {
// Required methods
fn resolve_module(
&self,
specifier: &str,
from: Option<&str>,
) -> Result<ModuleResolution, ApiError>;
fn load_module(
&self,
resolution: &ModuleResolution,
) -> Result<String, ApiError>;
fn get_module_info(&self, module_id: &str) -> Option<&ModuleInfo>;
}