"""
Neleus
======

Hyperliquid-first CLI and Python toolkit for market analysis, backtesting,
strategy development, and long-running strategy runtimes.
"""

__version__ = "0.1.9"

from .backtest_runner import BacktestRunner
from .config import (
    DatabaseConfig,
    discover_strategies,
    get_db_config,
    load_project_config,
    load_strategy_config,
    save_config,
    validate_config,
)
from .market import (
    MarketAnalysis,
    MarketCatalog,
    MarketEntry,
    MarketScan,
    MarketScanRow,
    analyze_market,
    fetch_market_candles,
    list_markets,
    normalize_market_symbol,
    scan_markets,
    stream_l2_book,
)
from .node import CandleInterval, HyperliquidBacktestConfig, HyperliquidBacktestNode, backtest
from .runtime import RuntimeResult, run_project_daemon, run_project_once
from .strategy import Actor, Strategy
from .types import (
    BacktestConfig,
    BacktestResults,
    Bar,
    BookLevel,
    DbFillRecord,
    DbOrderRecord,
    Fill,
    FillModel,
    FillRecord,
    HyperliquidAsset,
    HyperliquidCandle,
    HyperliquidClient,
    HyperliquidConfig,
    HyperliquidMeta,
    HyperliquidL2BookStream,
    HyperliquidL2BookUpdate,
    HyperliquidL2Level,
    HyperliquidSpotMarket,
    HyperliquidSpotMeta,
    HyperliquidSpotToken,
    HyperliquidTrader,
    IcebergParams,
    InstrumentId,
    InstrumentType,
    LatencyModel,
    MarketData,
    Network,
    OpenOrder,
    Order,
    OrderBook,
    OrderRequest,
    OrderResult,
    OrderSide,
    OrderState,
    OrderType,
    Position,
    PositionSide,
    PnlSummary,
    PostgresEventStore,
    PostgresEventStoreConfig,
    QuoteTick,
    RiskConfig,
    StrategyContext,
    SubscriptionType,
    TimeInForce,
    TimescaleConfig,
    TimescaleStore,
    TradeMonitor,
    TradeTick,
    TwapParams,
    Venue,
    VwapParams,
    using_rust_types,
)

__all__ = [
    "Actor",
    "analyze_market",
    "BacktestConfig",
    "DatabaseConfig",
    "BacktestResults",
    "BacktestRunner",
    "backtest",
    "Bar",
    "BookLevel",
    "CandleInterval",
    "DbFillRecord",
    "DbOrderRecord",
    "discover_strategies",
    "fetch_market_candles",
    "get_db_config",
    "Fill",
    "FillModel",
    "FillRecord",
    "HyperliquidAsset",
    "HyperliquidBacktestConfig",
    "HyperliquidBacktestNode",
    "HyperliquidCandle",
    "HyperliquidClient",
    "HyperliquidConfig",
    "HyperliquidL2BookStream",
    "HyperliquidL2BookUpdate",
    "HyperliquidL2Level",
    "HyperliquidMeta",
    "HyperliquidSpotMarket",
    "HyperliquidSpotMeta",
    "HyperliquidSpotToken",
    "HyperliquidTrader",
    "IcebergParams",
    "InstrumentId",
    "InstrumentType",
    "LatencyModel",
    "load_project_config",
    "load_strategy_config",
    "list_markets",
    "MarketCatalog",
    "MarketAnalysis",
    "MarketData",
    "MarketEntry",
    "MarketScan",
    "MarketScanRow",
    "Network",
    "OpenOrder",
    "Order",
    "OrderBook",
    "OrderRequest",
    "OrderResult",
    "OrderSide",
    "OrderState",
    "OrderType",
    "Position",
    "PositionSide",
    "PnlSummary",
    "PostgresEventStore",
    "PostgresEventStoreConfig",
    "QuoteTick",
    "RiskConfig",
    "run_project_daemon",
    "run_project_once",
    "RuntimeResult",
    "save_config",
    "scan_markets",
    "Strategy",
    "StrategyContext",
    "SubscriptionType",
    "TimeInForce",
    "TimescaleConfig",
    "TimescaleStore",
    "TradeMonitor",
    "TradeTick",
    "stream_l2_book",
    "TwapParams",
    "using_rust_types",
    "validate_config",
    "Venue",
    "VwapParams",
    "normalize_market_symbol",
]
