"""Webhook domain module for event notification system."""

from .constants import (
    DEFAULT_WEBHOOK_BACKOFF_BASE,
    DEFAULT_WEBHOOK_MAX_RESPONSE_LENGTH,
    DEFAULT_WEBHOOK_MAX_RETRIES,
    DEFAULT_WEBHOOK_TIMEOUT_MS,
    HTTP_CONTENT_TYPE_JSON,
    HTTP_HEADER_CONTENT_TYPE,
    HTTP_HEADER_WEBHOOK_DELIVERY,
    HTTP_HEADER_WEBHOOK_EVENT,
    HTTP_HEADER_WEBHOOK_SIGNATURE,
    HTTP_HEADER_WEBHOOK_TIMESTAMP,
    RETRYABLE_STATUS_CODES,
    WEBHOOK_REPLAY_TOLERANCE_SECONDS,
    WEBHOOK_SIGNATURE_PREFIX,
)
from .events import (
    DeliveryResult,
    MeetingCompletedPayload,
    RecordingPayload,
    SummaryGeneratedPayload,
    WebhookConfig,
    WebhookDelivery,
    WebhookEventType,
    WebhookPayload,
    WebhookPayloadDict,
    payload_to_dict,
)

__all__ = [
    # Constants
    "DEFAULT_WEBHOOK_BACKOFF_BASE",
    "DEFAULT_WEBHOOK_MAX_RESPONSE_LENGTH",
    "DEFAULT_WEBHOOK_MAX_RETRIES",
    "DEFAULT_WEBHOOK_TIMEOUT_MS",
    "HTTP_CONTENT_TYPE_JSON",
    "HTTP_HEADER_CONTENT_TYPE",
    "HTTP_HEADER_WEBHOOK_DELIVERY",
    "HTTP_HEADER_WEBHOOK_EVENT",
    "HTTP_HEADER_WEBHOOK_SIGNATURE",
    "HTTP_HEADER_WEBHOOK_TIMESTAMP",
    "RETRYABLE_STATUS_CODES",
    "WEBHOOK_REPLAY_TOLERANCE_SECONDS",
    "WEBHOOK_SIGNATURE_PREFIX",
    # Entities
    "DeliveryResult",
    "MeetingCompletedPayload",
    "RecordingPayload",
    "SummaryGeneratedPayload",
    "WebhookConfig",
    "WebhookDelivery",
    "WebhookEventType",
    "WebhookPayload",
    "WebhookPayloadDict",
    # Helpers
    "payload_to_dict",
]
