"""
Type definitions for Polymarket APIs.

This module contains all the Pydantic models and type definitions used across
the Polymarket APIs.
"""

from .clob_types import (
    ApiCreds,
    AssetType,
    BidAsk,
    BookParams,
    ClobMarket,
    ContractConfig,
    CreateOrderOptions,
    DailyEarnedReward,
    MarketOrderArgs,
    MarketRewards,
    Midpoint,
    OpenOrder,
    OrderArgs,
    OrderBookSummary,
    OrderCancelResponse,
    OrderPostResponse,
    OrderType,
    PaginatedResponse,
    PartialCreateOrderOptions,
    PolygonTrade,
    PostOrdersArgs,
    Price,
    PriceHistory,
    RequestArgs,
    RewardMarket,
    RoundConfig,
    Spread,
    TickSize,
    Token,
    TokenBidAsk,
    TokenBidAskDict,
    TokenValue,
    TokenValueDict,
)
from .common import EmptyString, EthAddress, Keccak256, TimeseriesPoint
from .data_types import (
    Activity,
    Holder,
    HolderResponse,
    Position,
    Trade,
    User,
    UserMetric,
    UserRank,
    ValueResponse,
)
from .gamma_types import (
    ClobReward,
    Event,
    EventList,
    GammaMarket,
    Pagination,
    QueryEvent,
    QueryMarket,
    Series,
    Tag,
)
from .websockets_types import (
    ActivityOrderMatchEvent,
    ActivityTrade,
    ActivityTradeEvent,
    AggOrderBookSummary,
    Comment,
    CommentEvent,
    CryptoPriceSubscribe,
    CryptoPriceSubscribeEvent,
    CryptoPriceUpdate,
    CryptoPriceUpdateEvent,
    ErrorEvent,
    LastTradePrice,
    LastTradePriceEvent,
    LiveDataClobMarket,
    LiveDataLastTradePriceEvent,
    LiveDataOrderBookSummaryEvent,
    LiveDataOrderEvent,
    LiveDataPriceChangeEvent,
    LiveDataTickSizeChangeEvent,
    LiveDataTradeEvent,
    MarketStatusChangeEvent,
    OrderBookSummaryEvent,
    OrderEvent,
    PriceChange,
    PriceChangeEvent,
    PriceChanges,
    Quote,
    QuoteEvent,
    Reaction,
    ReactionEvent,
    Request,
    RequestEvent,
    TickSizeChange,
    TickSizeChangeEvent,
    TradeEvent,
)

__all__ = [
    "Activity",
    "ActivityOrderMatchEvent",
    "ActivityTrade",
    "ActivityTradeEvent",
    "AggOrderBookSummary",
    "ApiCreds",
    "AssetType",
    "BidAsk",
    "BookParams",
    "ClobMarket",
    "ClobReward",
    "Comment",
    "CommentEvent",
    "ContractConfig",
    "CreateOrderOptions",
    "CryptoPriceSubscribe",
    "CryptoPriceSubscribeEvent",
    "CryptoPriceUpdate",
    "CryptoPriceUpdateEvent",
    "DailyEarnedReward",
    "EmptyString",
    "ErrorEvent",
    "EthAddress",
    "Event",
    "EventList",
    "GammaMarket",
    "Holder",
    "HolderResponse",
    "Keccak256",
    "LastTradePrice",
    "LastTradePriceEvent",
    "LiveDataClobMarket",
    "LiveDataLastTradePriceEvent",
    "LiveDataOrderBookSummaryEvent",
    "LiveDataOrderEvent",
    "LiveDataPriceChangeEvent",
    "LiveDataTickSizeChangeEvent",
    "LiveDataTradeEvent",
    "MarketOrderArgs",
    "MarketRewards",
    "MarketStatusChangeEvent",
    "Midpoint",
    "OpenOrder",
    "OrderArgs",
    "OrderBookSummary",
    "OrderBookSummaryEvent",
    "OrderCancelResponse",
    "OrderEvent",
    "OrderPostResponse",
    "OrderType",
    "PaginatedResponse",
    "Pagination",
    "PartialCreateOrderOptions",
    "PolygonTrade",
    "Position",
    "PostOrdersArgs",
    "Price",
    "PriceChange",
    "PriceChangeEvent",
    "PriceChanges",
    "PriceHistory",
    "QueryEvent",
    "QueryMarket",
    "Quote",
    "QuoteEvent",
    "Reaction",
    "ReactionEvent",
    "Request",
    "RequestArgs",
    "RequestEvent",
    "RewardMarket",
    "RoundConfig",
    "Series",
    "Spread",
    "Tag",
    "TickSize",
    "TickSizeChange",
    "TickSizeChangeEvent",
    "TimeseriesPoint",
    "Token",
    "TokenBidAsk",
    "TokenBidAskDict",
    "TokenValue",
    "TokenValueDict",
    "Trade",
    "TradeEvent",
    "User",
    "UserMetric",
    "UserRank",
    "ValueResponse",
]
