// ESM wrapper for the native module
import { createRequire } from 'module';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const require = createRequire(import.meta.url);
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const nativeBinding = require(join(__dirname, 'index.node'));

export const {
  TradingEngine,
  BacktestEngine,
  TechnicalIndicators,
  IncrementalSMA,
  IncrementalEMA,
  IncrementalRSI,
  RiskAnalyzer,
  OrderbookAnalyzer,
  MarketData,
  MarketUpdate,
  Order,
  Fill,
  Position,
  RiskLimits,
  RiskMetrics,
  ExecutionResult,
  OrderBookLevel,
  OrderBookSnapshot,
  MarketMicrostructure,
  PositionUpdate,
  RiskCheckResult
} = nativeBinding;

export default nativeBinding;