"""Set-of-Mark extraction: vision locates each table; Camelot fills its region.

The grid locator identifies every table and its region; Camelot extracts the
cell grid constrained to that region (so it cannot shatter one table into many
or merge many into one); the grounded structure-correction step cleans the
grid (spans, merged-symbol columns, multi-level headers) without inventing
values. One clean `ExtractedTable` per visual table — no detector, no box
repair, no recovery escalation.
"""

from __future__ import annotations

from quber.core.extractors.set_of_mark.orchestrator import SetOfMarkExtractor
from quber.core.extractors.set_of_mark.split import split_table

__all__ = ["SetOfMarkExtractor", "split_table"]
