"""quicproquo -- Python SDK for the quicproquo E2E encrypted messenger.

Two transport backends are available:

1. **FFI** (``QpqClient.connect_ffi``): wraps the Rust ``libquicproquo_ffi``
   shared library via CFFI.  This gives you the full Rust crypto stack
   (MLS, hybrid KEM, OPAQUE) at native speed.

2. **QUIC** (``QpqClient.connect``): pure-Python QUIC transport via *aioquic*
   with protobuf (v2 wire format).  No Rust dependency required; crypto
   operations must be supplied externally.
"""

from quicproquo.client import QpqClient
from quicproquo.types import (
    ConnectOptions,
    Envelope,
    ChannelResult,
    HealthInfo,
    QpqError,
    AuthError,
    TimeoutError as QpqTimeoutError,
    ConnectionError as QpqConnectionError,
)

__version__ = "0.1.0"

__all__ = [
    "QpqClient",
    "ConnectOptions",
    "Envelope",
    "ChannelResult",
    "HealthInfo",
    "QpqError",
    "AuthError",
    "QpqTimeoutError",
    "QpqConnectionError",
]
