use serde::Serialize;
use crate::alphabet::Alphabet;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, ts_rs::TS)]
#[ts(export, export_to = "../../wasm/types/lib_types.ts")]
pub enum LogLevel {
Info,
Warning,
}
#[derive(Clone, Debug, Serialize, ts_rs::TS)]
#[ts(export, export_to = "../../wasm/types/lib_types.ts")]
#[serde(tag = "type")]
pub enum NJEvent {
MsaValidated { n_sequences: usize, n_sites: usize },
AlphabetDetected { alphabet: Alphabet },
ComputingDistances,
RunningNJ,
BootstrapStarted { total: usize },
BootstrapProgress { completed: usize, total: usize },
AnnotatingBootstrap,
Log { level: LogLevel, message: String },
}