#![forbid(unsafe_code)]
mod builders;
mod client;
mod error;
pub mod injection;
pub mod managed;
mod ranges;
pub mod rpc;
mod session;
pub mod subscriptions;
mod transaction_step;
pub mod urls;
mod pnl;
pub use builders::{Continue, CreateSession, SerializeEncodeError};
pub use client::BacktestClient;
pub use error::{BacktestClientError, BacktestClientResult};
pub use injection::{ProgramModError, build_program_injection, modify_program_via_rpc};
pub use managed::{ControlEvent, ManagedBacktestSession, ManagedEvent, ManagedSessionError};
pub use pnl::report_agent_pnl;
pub use ranges::{RangeBound, filter_ranges};
pub use session::{
AdvanceState, BacktestSession, ContinueResult, CoverageError, ReadyOutcome, SessionCoverage,
};
pub use simulator_api::{
AvailableRange, DiscoveryFilter, split_range,
usage::{ComputeTotals, SessionCounts, UsageReport},
};
pub use subscriptions::{
AccountDiffContext, AccountDiffNotification, AccountDiffSubscriptionHandle,
LogSubscriptionHandle, RoutedAccountDiffNotification, SubscriptionError, SubscriptionHandle,
SubscriptionRuntimeError, subscribe_account_diffs, subscribe_account_diffs_many,
subscribe_program_diffs, subscribe_program_logs,
};
pub use transaction_step::{DiscoveryPause, DiscoveryStepResult};
pub use urls::{UrlError, http_to_ws_url};