"""mgf-tele-core — vendor-neutral telematics seam.

A `mgf-common` sibling under the `mgf.*` namespace; the foundation of
the `mgf-tele-*` family (per-vendor codecs like `mgf-tele-teltonika`
build on it). Public surface:

  * :class:`TelematicsProvider` — the device-session ABC; with
    :class:`SessionHandle` / :class:`TrackerCommand` / :class:`CommandAck`
    (the seam vocabulary).
  * :class:`GeoPoint` / :class:`DecodedAvlRecord` / :class:`ReceivedPacket`
    / :data:`ParseStatus` — the codec-agnostic AVL frame types.
  * :class:`TelematicsError` (+ subclasses) — the typed error hierarchy
    (all subclass ``mgf.common.exceptions.AppError``).
  * :class:`MockTelematicsProvider` / :class:`MockExhaustedError`
    (in :mod:`mgf.tele.core.mock`) — the scripted test double.
"""

from __future__ import annotations

__version__ = "0.1.9"  # AP-13: mirrors pyproject.toml

from mgf.tele.core._errors import (
    ChecksumError,
    MalformedHandshakeError,
    MalformedPacketError,
    SessionClosedError,
    TelematicsError,
    UnknownTrackerError,
    UnsupportedCodecError,
)
from mgf.tele.core._frames import (
    DecodedAvlRecord,
    GeoPoint,
    ParseStatus,
    ReceivedPacket,
)
from mgf.tele.core._provider import (
    CommandAck,
    SessionHandle,
    TelematicsProvider,
    TrackerCommand,
)

__all__ = [
    "ChecksumError",
    "CommandAck",
    "DecodedAvlRecord",
    "GeoPoint",
    "MalformedHandshakeError",
    "MalformedPacketError",
    "ParseStatus",
    "ReceivedPacket",
    "SessionClosedError",
    "SessionHandle",
    "TelematicsError",
    "TelematicsProvider",
    "TrackerCommand",
    "UnknownTrackerError",
    "UnsupportedCodecError",
    "__version__",
]
