use serde::{Deserialize, Serialize};
pub mod catalog;
pub mod h2_fp;
pub mod ja3;
pub mod ja4;
pub mod oracle;
pub use catalog::{diff_against, lookup_by_name};
pub use h2_fp::compute_h2_settings_fingerprint;
pub use ja3::compute_ja3;
pub use ja4::compute_ja4;
pub use oracle::{OracleReport, DEFAULT_ORACLE_ENDPOINT};
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
pub struct SelfFingerprint {
pub ja3: Option<String>,
pub ja3_hash: Option<String>,
pub ja4: Option<String>,
pub h2_settings_fp: Option<String>,
pub header_order: Vec<String>,
pub sec_ch_ua: Option<String>,
pub user_agent: Option<String>,
pub profile_expected: Option<ProfileExpected>,
pub matches_profile: Option<bool>,
pub drift_signals: Vec<String>,
}
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
pub struct ProfileExpected {
pub profile_name: String,
pub ja3_hash: Option<String>,
pub ja4: Option<String>,
pub h2_settings_fp: Option<String>,
}