use aprender::format::{self, ModelType, SaveOptions};
use aprender::metrics::ranking::RankingMetrics;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::path::Path;
use crate::trie::Trie;
#[derive(Serialize, Deserialize)]
pub struct MarkovModel {
n: usize,
ngrams: HashMap<String, HashMap<String, u32>>,
command_freq: HashMap<String, u32>,
#[serde(skip)]
trie: Option<Trie>,
total_commands: usize,
#[serde(default)]
last_trained_pos: usize,
}
include!("model_markov.rs");
include!("validation_result.rs");
include!("model_encrypted_roundtrip.rs");
include!("model_corpus_path_load.rs");