use crate::error::Result;
use async_trait::async_trait;
use super::types::{Candle, OrderBook, Ticker, Trade};
#[async_trait]
pub trait OrderBookClient: Send + Sync {
async fn fetch_order_book(&self, pair_symbol: &str) -> Result<OrderBook>;
}
#[async_trait]
pub trait TickerClient: Send + Sync {
async fn fetch_ticker(&self, pair_symbol: &str) -> Result<Ticker>;
}
#[async_trait]
pub trait TradeHistoryClient: Send + Sync {
async fn fetch_recent_trades(&self, pair_symbol: &str, limit: u32) -> Result<Vec<Trade>>;
}
#[async_trait]
pub trait OhlcClient: Send + Sync {
async fn fetch_ohlc(
&self,
pair_symbol: &str,
interval: &str,
limit: u32,
) -> Result<Vec<Candle>>;
}