use crate::{engine::execution_tx::MultiExchangeTxMap, execution::builder::ExecutionHandles};
use barter_data::streams::reconnect;
use barter_execution::AccountEvent;
use barter_instrument::{
asset::AssetIndex,
exchange::{ExchangeId, ExchangeIndex},
instrument::InstrumentIndex,
};
use barter_integration::channel::Channel;
pub mod builder;
pub mod error;
pub mod manager;
pub mod request;
pub type AccountStreamEvent<
ExchangeKey = ExchangeIndex,
AssetKey = AssetIndex,
InstrumentKey = InstrumentIndex,
> = reconnect::Event<ExchangeId, AccountEvent<ExchangeKey, AssetKey, InstrumentKey>>;
#[allow(missing_debug_implementations)]
pub struct Execution {
pub execution_txs: MultiExchangeTxMap,
pub account_channel: Channel<AccountStreamEvent>,
pub handles: ExecutionHandles,
}