pub mod errors;
pub mod models;
pub mod rest;
pub mod tls;
pub mod urls;
pub mod websocket;
mod tracing_compat;
pub use errors::MarketDataError;
pub use tls::TlsConfig;
pub use rest::{Auth, RestClient, RetryPolicy};
pub use websocket::{
ConnectionConfig, ConnectionEvent, ConnectionState, DisconnectIntent, HealthCheckConfig,
MessageReceiver, ReconnectionConfig, WebSocketClient, WebSocketFactory,
};
pub use websocket::health_check::{
DEFAULT_HEALTH_CHECK_ENABLED, DEFAULT_HEARTBEAT_TIMEOUT_MS, MIN_HEARTBEAT_TIMEOUT_MS,
};
pub use websocket::reconnection::{
DEFAULT_INITIAL_DELAY_MS, DEFAULT_MAX_ATTEMPTS, DEFAULT_MAX_DELAY_MS, MIN_INITIAL_DELAY_MS,
};
pub use models::{
PriceLevel, ResponseMeta, TotalStats, TradeInfo, TradingHalt,
HistoricalCandle, HistoricalCandlesResponse, IntradayCandle, IntradayCandlesResponse,
Quote, Ticker, Trade, TradesResponse, VolumeAtPrice, VolumesResponse,
AuthRequest, Channel, SymbolSpec, UnsubscribeRequest, WebSocketMessage, WebSocketRequest,
};
pub use models::streaming::{
AggregatesData, BooksData, CandleData, CandleHistoryItem, CandlesSnapshot, DataPayload,
ErrorData, IndicesData, SnapshotPayload, StreamMessage, StreamTrade, SubscribedData,
TradesData,
};
pub use websocket::channels::{parse_channel_data, parse_stream_message, ChannelData};
pub use websocket::StockSubscription;
pub use models::futopt::{
ContractType, FutOptChannel, FutOptLastTrade, FutOptPriceLevel, FutOptQuote, FutOptSession,
FutOptTicker, FutOptTotalStats, FutOptType, OptionRight, Product, ProductsResponse,
};
pub use websocket::channels::FutOptSubscription;
#[cfg(feature = "tokio-comp")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
pub use websocket::aio;
#[cfg(feature = "tokio-comp")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
pub use websocket::aio::AsyncRuntime;