use async_trait::async_trait;
use futures::stream::BoxStream;
use tycho_client::feed::synchronizer::StateSyncMessage;
use tycho_common::{
models::protocol::GetAmountOutParams, simulation::indicatively_priced::SignedQuote,
};
use crate::rfq::{errors::RFQError, models::TimestampHeader};
#[async_trait]
pub trait RFQClient: Send + Sync {
fn stream(
&self,
) -> BoxStream<'static, Result<(String, StateSyncMessage<TimestampHeader>), RFQError>>;
async fn request_binding_quote(
&self,
params: &GetAmountOutParams,
) -> Result<SignedQuote, RFQError>;
}