use super::bundle::SmpContainerProfile;
use super::map_title::{build_ascii_preview, is_ascii_preview_byte};
use super::structures::IndexedCollectionHeaderSummary;
use crate::inspect::smp::catalog::offsets::bundle::MIN_ASCII_RUN_LEN;
use crate::inspect::smp::catalog::offsets::events::EVENT_RUNTIME_COLLECTION_METADATA_TAG;
use crate::inspect::smp::catalog::offsets::regions::{
    INDEXED_COLLECTION_SERIALIZED_HEADER_DWORD_COUNT, INDEXED_COLLECTION_SERIALIZED_HEADER_LEN,
};
use crate::inspect::smp::catalog::offsets::world::RT3_SAVE_WORLD_BLOCK_CHUNK_TAG;

mod ascii;
mod headers;
mod model;
mod names;
mod read;
mod recipe;
mod search;
mod signatures;

pub(super) use ascii::{ascii_preview, find_first_ascii_run, hex_encode, sha256_hex};
pub(super) use headers::{
    filter_unclassified_tagged_collection_header_probes_outside_known_spans,
    parse_save_tagged_collection_header_probe,
    scan_save_unclassified_tagged_collection_header_probes,
};
pub use model::*;
pub(super) use names::{
    parse_save_len_prefixed_ascii_name, parse_save_len_prefixed_ascii_name_pair,
    parse_save_len_prefixed_ascii_name_triplet,
    parse_save_len_prefixed_ascii_name_triplet_and_consumed_len,
    parse_save_region_profile_collection_probe,
};
pub(super) use read::{
    parse_nonzero_u32, read_ascii_c_string_at, read_f32_at, read_f64_at, read_i32_at, read_i64_at,
    read_u8_at, read_u16_at, read_u16_window, read_u32_at, read_u32_window, read_u64_at,
    round_f64_to_i64,
};
pub(super) use recipe::{
    classify_recipe_book_region_kind, classify_recipe_line_signature,
    classify_recipe_runtime_import_branch, classify_recipe_token_layout,
    probable_normal_f32_string, probable_recipe_token_high16_ascii_stem,
};
pub(super) use search::{
    find_next_nonzero_offset, find_u16_le_offsets, find_u32_le_offsets, find_zero_run,
};
pub(super) use signatures::{compact_nondirect_signature_family, format_u16_word_signature};
