"""mgf-livepush — realtime push pipeline (SSE + pluggable pub/sub broker).

A `mgf-common` sibling under the `mgf.*` namespace. Public surface:

  * :class:`SSEStreamService` / :class:`SSEStream` / :func:`sse_headers`
    — the broker-agnostic SSE streaming primitive.
  * :class:`Broker` / :class:`RedisBroker` / :class:`MockBroker` /
    :class:`Subscription` — the pub/sub seam + adapters.
  * :class:`SlotCap` — the per-key connection-slot cap (R-28 pattern).
  * :class:`CapExceededError` / :class:`LivePushError` — typed errors
    (subclass ``mgf.common.exceptions.AppError``).

The FastAPI ``StreamingResponse`` wrapper lives in
:mod:`mgf.livepush.fastapi` (requires the ``[fastapi]`` extra). See the
README for the dev/prod-proxy SSE recipe.
"""

from __future__ import annotations

from mgf.livepush._broker import Broker, MockBroker, RedisBroker, Subscription
from mgf.livepush._errors import CapExceededError, LivePushError
from mgf.livepush._slotcap import SlotCap
from mgf.livepush._sse import SSEStream, SSEStreamService, sse_headers

__all__ = [
    "Broker",
    "CapExceededError",
    "LivePushError",
    "MockBroker",
    "RedisBroker",
    "SSEStream",
    "SSEStreamService",
    "SlotCap",
    "Subscription",
    "__version__",
    "sse_headers",
]

__version__ = "0.1.8"
