"""C2.5 ReRank — Public API (AZ-342).

Per ``rerank_strategy_protocol.md`` v1.0.0 the public surface
consists of:

- :class:`ReRankStrategy` Protocol (one method).
- DTOs re-exported from :mod:`gps_denied_onboard._types.rerank` (the
  L1 home for cross-component DTOs): :class:`RerankCandidate`,
  :class:`RerankResult`.
- Error family rooted at :class:`RerankError`; two documented
  subtypes (:class:`RerankBackboneError`,
  :class:`RerankAllCandidatesFailedError`).
- Config block :class:`C2_5RerankConfig` (registered on import).

Concrete strategy (``InlierCountReRanker``, AZ-343) lives in a
sibling module and is imported lazily by
:mod:`gps_denied_onboard.runtime_root.rerank_factory` — Risk-2
mitigation: this ``__init__.py`` MUST NOT import any concrete
strategy module.
"""

from gps_denied_onboard._types.rerank import RerankCandidate, RerankResult
from gps_denied_onboard.components.c2_5_rerank.config import C2_5RerankConfig
from gps_denied_onboard.components.c2_5_rerank.errors import (
    RerankAllCandidatesFailedError,
    RerankBackboneError,
    RerankError,
)
from gps_denied_onboard.components.c2_5_rerank.interface import ReRankStrategy
from gps_denied_onboard.config.schema import register_component_block

register_component_block("c2_5_rerank", C2_5RerankConfig)

__all__ = [
    "C2_5RerankConfig",
    "ReRankStrategy",
    "RerankAllCandidatesFailedError",
    "RerankBackboneError",
    "RerankCandidate",
    "RerankError",
    "RerankResult",
]
