"""Public SDK package for Prophet Arena."""

from .client import (
    APIClientError,
    APIConnectionError,
    APIError,
    APIServerError,
    APITimeoutError,
    APIValidationError,
    ServerAPIClient,
)
from .client_models import (
    CandidatesResponse,
    ClaimTickResponse,
    CompleteTickResponse,
    CreateExperimentResponse,
    FillData,
    FinalizeResponse,
    HealthResponse,
    MarketData,
    MarketQuote,
    PortfolioResponse,
    PositionData,
    ProgressResponse,
    PutPlanResponse,
    RejectionData,
    TradeIntentBatchRequest,
    TradeIntentRequest,
    TradeSubmissionResult,
    UpsertParticipantResponse,
)
from .decimal_utils import (
    CASH_QUANTIZE,
    PRICE_QUANTIZE,
    SHARES_QUANTIZE,
    is_non_negative,
    is_positive,
    is_valid_price,
    q_cash,
    q_price,
    q_shares,
    safe_divide,
)
from .ids import (
    candidate_snapshot_id,
    generate_deterministic_uuid,
    generate_uuid,
    hash_stable_id,
)
from .models import (
    CandidateSetSnapshot,
    Confidence,
    Experiment,
    Fill,
    Market,
    Participant,
    Portfolio,
    Position,
    Quote,
    RecommendationDirection,
    SizeType,
    TradeAction,
    TradeIntent,
    TradeSide,
)
from .schemas import SchemaLoader, get_loader, is_valid_schema, validate_schema
from .time import get_current_tick, get_next_tick, get_previous_tick, is_tick_boundary, normalize_tick

__version__ = "0.1.0"

__all__ = [
    "ServerAPIClient",
    "APIError",
    "APIConnectionError",
    "APITimeoutError",
    "APIValidationError",
    "APIServerError",
    "APIClientError",
    "CandidatesResponse",
    "ClaimTickResponse",
    "CompleteTickResponse",
    "CreateExperimentResponse",
    "FillData",
    "FinalizeResponse",
    "HealthResponse",
    "MarketData",
    "MarketQuote",
    "PortfolioResponse",
    "PositionData",
    "ProgressResponse",
    "PutPlanResponse",
    "RejectionData",
    "TradeIntentBatchRequest",
    "TradeIntentRequest",
    "TradeSubmissionResult",
    "UpsertParticipantResponse",
    "TradeAction",
    "TradeSide",
    "SizeType",
    "Confidence",
    "RecommendationDirection",
    "Market",
    "Quote",
    "CandidateSetSnapshot",
    "Experiment",
    "Participant",
    "TradeIntent",
    "Fill",
    "Position",
    "Portfolio",
    "normalize_tick",
    "is_tick_boundary",
    "get_current_tick",
    "get_next_tick",
    "get_previous_tick",
    "generate_uuid",
    "generate_deterministic_uuid",
    "hash_stable_id",
    "candidate_snapshot_id",
    "q_price",
    "q_shares",
    "q_cash",
    "is_valid_price",
    "is_positive",
    "is_non_negative",
    "safe_divide",
    "PRICE_QUANTIZE",
    "SHARES_QUANTIZE",
    "CASH_QUANTIZE",
    "validate_schema",
    "is_valid_schema",
    "SchemaLoader",
    "get_loader",
]
