"""gnexus-synapse — тонкий клиент Ingestion API хаба уведомлений Gnexus Synapse.

Контракт: docs/05-ingestion-api.md репозитория gn-synapse.
"""

from ._async import AsyncSynapseClient
from .client import USER_AGENT, SynapseClient
from .config import ENV_API_KEY, ENV_DEFAULT_SOURCE, ENV_TIMEOUT, ENV_URL, SynapseConfig
from .dto import BatchRejection, BatchResult, Delivery, Event, EventStatus
from .exceptions import (
    SynapseAuthError,
    SynapseConfigError,
    SynapseConnectionError,
    SynapseError,
    SynapseForbiddenError,
    SynapseNotFoundError,
    SynapseServerError,
    SynapseStatusTimeoutError,
    SynapseValidationError,
    SynapseWebhookError,
)
from .webhook import (
    DEFAULT_MAX_SKEW,
    EVENT_TYPE_HEADER,
    SIGNATURE_HEADER,
    SOURCE_HEADER,
    ack,
    make_signature,
    parse_event_type,
    verify_webhook,
)

__version__ = "0.1.2"

__all__ = [
    "AsyncSynapseClient",
    "SynapseClient",
    "SynapseConfig",
    "Event",
    "BatchResult",
    "BatchRejection",
    "EventStatus",
    "Delivery",
    "SynapseConfigError",
    "SynapseConnectionError",
    "SynapseAuthError",
    "SynapseForbiddenError",
    "SynapseNotFoundError",
    "SynapseValidationError",
    "SynapseServerError",
    "SynapseWebhookError",
    "SynapseStatusTimeoutError",
    "SynapseError",
    "verify_webhook",
    "make_signature",
    "parse_event_type",
    "ack",
    "SIGNATURE_HEADER",
    "EVENT_TYPE_HEADER",
    "SOURCE_HEADER",
    "DEFAULT_MAX_SKEW",
    "ENV_URL",
    "ENV_API_KEY",
    "ENV_TIMEOUT",
    "ENV_DEFAULT_SOURCE",
    "USER_AGENT",
]
