use std::collections::HashMap;
use golem_wasm_ast::analysis::AnalysedExport;
use serde::{Deserialize, Serialize};
use crate::model::component_metadata::{DynamicLinkedInstance, LinearMemory};
use crate::model::{ComponentId, ComponentType, ComponentVersion, InitialComponentFile};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LocalFileSystemComponentMetadata {
pub component_id: ComponentId,
pub version: ComponentVersion,
pub size: u64,
pub memories: Vec<LinearMemory>,
pub exports: Vec<AnalysedExport>,
pub component_type: ComponentType,
pub files: Vec<InitialComponentFile>,
pub component_name: String,
pub wasm_filename: String,
#[serde(default)]
pub dynamic_linking: HashMap<String, DynamicLinkedInstance>,
#[serde(default)]
pub env: HashMap<String, String>,
}