"""SD-API: Python SDK for real-time market data, analysis, and trading assistance."""

from sd_api.version import __version__

from sd_api.config import settings

from sd_api.exceptions import (
    SDAPIError,
    APIRequestError,
    APIResponseError,
    StreamError,
    StorageError,
    PlotError,
    ValidationError,
)

from sd_api.models import (
    Quote,
    QuoteSnapshot,
    QuoteHistory,
    KlineBar,
    KlineSeries,
    HealthStatus,
    ProductSpec,
    TradeSignal,
    OrderFeedback,
    MessageFeedback,
    SignalFeedback,
)

from sd_api.trading.orders import OrderRequest

from sd_api.client import SDClient
from sd_api.stream import SDStream
from sd_api.docs import show_help, open_docs, list_docs, DOCS_DIR

__all__ = [
    "__version__",
    "settings",
    # exceptions
    "SDAPIError",
    "APIRequestError",
    "APIResponseError",
    "StreamError",
    "StorageError",
    "PlotError",
    "ValidationError",
    # models
    "Quote",
    "QuoteSnapshot",
    "QuoteHistory",
    "KlineBar",
    "KlineSeries",
    "HealthStatus",
    "ProductSpec",
    "TradeSignal",
    "OrderFeedback",
    "MessageFeedback",
    "SignalFeedback",
    # trading
    "OrderRequest",
    # client
    "SDClient",
    "SDStream",
    # docs
    "show_help",
    "open_docs",
    "list_docs",
    "DOCS_DIR",
]
