"""Two independent table-extraction flows, run side by side.

DEPRECATED and dormant: this side-by-side, un-reconciled exploration was the
step before `SetOfMarkExtractor`, which fuses the two (vision directs Camelot).
Kept importable for comparison only; do not build new work on it.


A *visual* flow identifies tables by looking at the rendered page (the grid
locator owns the table count and identity), and a *camelot* flow extracts
cell grids straight from the PDF. The two run concurrently and each emits
its own result; nothing here matches or reconciles them — that is a later
step. This package deliberately avoids the detector-driven box repair,
targeted recovery, and grid escalation of the correspondence flow: each
flow stands on its own.
"""

from __future__ import annotations

from quber.core.extractors.dual.models import CamelotTable, DualResult, VisualTable
from quber.core.extractors.dual.orchestrator import DualFlowExtractor

__all__ = ["CamelotTable", "DualResult", "VisualTable", "DualFlowExtractor"]
