"""
Broker Abstraction Layer for BrighterTrading.

This package provides a unified interface for executing trades across different modes:
- BacktestBroker: Uses Backtrader for historical simulation
- PaperBroker: Simulates fills with live price data
- LiveBroker: Executes real trades via exchange APIs (CCXT)
"""

from .base_broker import BaseBroker, OrderSide, OrderType, OrderStatus, OrderResult, Position
from .backtest_broker import BacktestBroker
from .paper_broker import PaperBroker
from .live_broker import LiveBroker
from .factory import create_broker, TradingMode, get_available_modes

__all__ = [
    'BaseBroker', 'OrderSide', 'OrderType', 'OrderStatus', 'OrderResult', 'Position',
    'BacktestBroker', 'PaperBroker', 'LiveBroker',
    'create_broker', 'TradingMode', 'get_available_modes'
]
