"""Typed domain model — validated, immutable value types for trading.

Inspired by NautilusTrader's fail-fast, precision-safe domain model.
All types reject NaN, Infinity, and out-of-range values at construction time.
"""

from __future__ import annotations

from .types import Price, Quantity, Money
from .events import (
    Event,
    BarEvent,
    QuoteEvent,
    TradeEvent,
    OrderEvent,
    FillEvent,
    PositionEvent,
    TimeEvent,
    SignalEvent,
)

__all__ = [
    "Price",
    "Quantity",
    "Money",
    "Event",
    "BarEvent",
    "QuoteEvent",
    "TradeEvent",
    "OrderEvent",
    "FillEvent",
    "PositionEvent",
    "TimeEvent",
    "SignalEvent",
]
