"""
Reactor Python SDK - Real-time AI video streaming.

This SDK provides a Python interface for connecting to Reactor models
and streaming video in real-time using WebRTC.

Example:
    from reactor_sdk import Reactor, ReactorStatus

    reactor = Reactor(model_name="my-model", api_key="your-api-key")

    @reactor.on_frame
    def handle_frame(frame):
        print(f"Frame: {frame.shape}")

    @reactor.on_status(ReactorStatus.READY)
    def handle_ready(status):
        print("Connected!")

    await reactor.connect()
"""

from importlib.metadata import version, PackageNotFoundError

try:
    __version__ = version("reactor-sdk")
except PackageNotFoundError:
    __version__ = "0.0.0.dev"

# Main class
from reactor_sdk.interface import Reactor

# Types
from reactor_sdk.types import (
    ConflictError,
    FrameCallback,
    GPUMachineEvent,
    GPUMachineStatus,
    MessageScope,
    ReactorError,
    ReactorEvent,
    ReactorState,
    ReactorStatus,
)

# Utilities
from reactor_sdk.utils.tokens import fetch_jwt_token

__all__ = [
    # Main class
    "Reactor",
    # Utilities
    "fetch_jwt_token",
    # Types
    "ReactorStatus",
    "ReactorError",
    "ReactorState",
    "ReactorEvent",
    "GPUMachineStatus",
    "GPUMachineEvent",
    "MessageScope",
    "FrameCallback",
    "ConflictError",
    "__version__",
]
