mod component;
mod document;
mod extract;
mod identity;
mod limits;
pub(crate) mod normalize;
mod render;
#[cfg(test)]
mod tests;
pub use component::{LandmarkRole, SelectOption, SemanticAttrs, SemanticComponent, SemanticKind};
pub use document::{FragmentResolution, SemanticComponentIter, SemanticDocument};
pub(crate) use extract::capture_matches_document_metadata;
pub use extract::extract_semantic_document;
pub use identity::{SemanticRef, SemanticRefError};
pub use limits::{
MAX_SEMANTIC_COMPONENTS, MAX_SEMANTIC_DEPTH, MAX_SEMANTIC_SELECT_OPTIONS,
MAX_SEMANTIC_STRING_CHARS, MAX_SEMANTIC_TOTAL_TEXT_CHARS,
};
pub use normalize::{RawSelectOption, RawSemanticNode, normalize_fixture};
pub use render::{
ComponentProjection, DebugNode, DebugProjection, MAX_RENDER_OUTPUT_CHARS, OutlineEntry,
OutlineProjection, RenderError, RenderedOutput, SemanticJsonProjection, SemanticRatatuiView,
buffer_to_lines, render_component_json, render_component_markdown, render_debug,
render_outline, render_ratatui_buffer, render_ratatui_lines, render_semantic_json,
render_semantic_markdown, truncate_output,
};