/* auto-generated by NAPI-RS */
/* eslint-disable */
export declare class Incr_fn_absolute_price_oscillator_50ba9c {
  static make(ctx: NodeCtx): Incr_fn_absolute_price_oscillator_50ba9c
  next(7825Src: number, 7826FastLength?: number | undefined | null, 7827SlowLength?: number | undefined | null): number
  collect(7825Src: Array<number>, 7826FastLength?: number | undefined | null, 7827SlowLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_accdist_a6139b {
  static make(ctx: NodeCtx): Incr_fn_accdist_a6139b
  next(): number
  collect(): Array<number>
}

export declare class Incr_fn_advance_decline_ratio_62137f {
  static make(ctx: NodeCtx): Incr_fn_advance_decline_ratio_62137f
  next(7807Length?: number | undefined | null): number
  collect(7807Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_aroon_0fc1da {
  static make(ctx: NodeCtx): Incr_fn_aroon_0fc1da
  next(7660Length?: number | undefined | null): [number, number]
  collect(7660Length?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_atr_60799e {
  static make(ctx: NodeCtx): Incr_fn_atr_60799e
  next(7648Length?: number | undefined | null): number
  collect(7648Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_awesome_oscillator_1729a8 {
  static make(ctx: NodeCtx): Incr_fn_awesome_oscillator_1729a8
  next(7666Src: number, 7667SlowLength?: number | undefined | null, 7668FastLength?: number | undefined | null): number
  collect(7666Src: Array<number>, 7667SlowLength?: number | undefined | null, 7668FastLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_balance_of_power_8cd6da {
  static make(ctx: NodeCtx): Incr_fn_balance_of_power_8cd6da
  next(): number
  collect(): Array<number>
}

export declare class Incr_fn_barssince_23828f {
  static make(ctx: NodeCtx): Incr_fn_barssince_23828f
  next(7594Condition?: boolean | undefined | null): number | null
  collect(7594Condition: Array<boolean | undefined | null>): Array<number | undefined | null>
}

export declare class Incr_fn_bollinger_bands_064d07 {
  static make(ctx: NodeCtx): Incr_fn_bollinger_bands_064d07
  next(7691Src: number, 7692Length?: number | undefined | null, 7693Mult?: number | undefined | null): [number, number]
  collect(7691Src: Array<number>, 7692Length?: number | undefined | null, 7693Mult?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_bollinger_bands_pct_b_409315 {
  static make(ctx: NodeCtx): Incr_fn_bollinger_bands_pct_b_409315
  next(7673Src: number, 7674Length?: number | undefined | null, 7675Mult?: number | undefined | null): number
  collect(7673Src: Array<number>, 7674Length?: number | undefined | null, 7675Mult?: number | undefined | null): Array<number>
}

export declare class Incr_fn_bollinger_bands_width_b0b5cf {
  static make(ctx: NodeCtx): Incr_fn_bollinger_bands_width_b0b5cf
  next(7682Src: number, 7683Length?: number | undefined | null, 7684Mult?: number | undefined | null): number
  collect(7682Src: Array<number>, 7683Length?: number | undefined | null, 7684Mult?: number | undefined | null): Array<number>
}

export declare class Incr_fn_bull_bear_power_27d2ce {
  static make(ctx: NodeCtx): Incr_fn_bull_bear_power_27d2ce
  next(7819Length?: number | undefined | null): number
  collect(7819Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_cci_d2d14f {
  static make(ctx: NodeCtx): Incr_fn_cci_d2d14f
  next(7653Src: number, 7654Length?: number | undefined | null): number
  collect(7653Src: Array<number>, 7654Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_chaikin_money_flow_2cbc46 {
  static make(ctx: NodeCtx): Incr_fn_chaikin_money_flow_2cbc46
  next(7699Length?: number | undefined | null): number
  collect(7699Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_chande_kroll_stop_bc52b9 {
  static make(ctx: NodeCtx): Incr_fn_chande_kroll_stop_bc52b9
  next(7704AtrLength?: number | undefined | null, 7705AtrCoeff?: number | undefined | null, 7706StopLength?: number | undefined | null): [number, number]
  collect(7704AtrLength?: number | undefined | null, 7705AtrCoeff?: number | undefined | null, 7706StopLength?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_change_4c3ac8 {
  static make(ctx: NodeCtx): Incr_fn_change_4c3ac8
  next(7592Src: number): number
  collect(7592Src: Array<number>): Array<number>
}

export declare class Incr_fn_choppiness_index_c5927b {
  static make(ctx: NodeCtx): Incr_fn_choppiness_index_c5927b
  next(7715Length?: number | undefined | null): number
  collect(7715Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_connors_rsi_ece379 {
  static make(ctx: NodeCtx): Incr_fn_connors_rsi_ece379
  next(7722Src: number, 7723RsiLength?: number | undefined | null, 7724UpDownLength?: number | undefined | null, 7725RocLength?: number | undefined | null): number
  collect(7722Src: Array<number>, 7723RsiLength?: number | undefined | null, 7724UpDownLength?: number | undefined | null, 7725RocLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_coppock_curve_f70598 {
  static make(ctx: NodeCtx): Incr_fn_coppock_curve_f70598
  next(7731Src: number, 7732WmaLength?: number | undefined | null, 7733LongRocLength?: number | undefined | null, 7734ShortRocLength?: number | undefined | null): number
  collect(7731Src: Array<number>, 7732WmaLength?: number | undefined | null, 7733LongRocLength?: number | undefined | null, 7734ShortRocLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_cross_904423 {
  static make(ctx: NodeCtx): Incr_fn_cross_904423
  next(7605Source1: number, 7606Source2: number): boolean | null
  collect(7605Source1: Array<number>, 7606Source2: Array<number>): Array<boolean | undefined | null>
}

export declare class Incr_fn_crossover_00b6d7 {
  static make(ctx: NodeCtx): Incr_fn_crossover_00b6d7
  next(7599Source1: number, 7600Source2: number): boolean | null
  collect(7599Source1: Array<number>, 7600Source2: Array<number>): Array<boolean | undefined | null>
}

export declare class Incr_fn_crossunder_03161e {
  static make(ctx: NodeCtx): Incr_fn_crossunder_03161e
  next(7602Source1: number, 7603Source2: number): boolean | null
  collect(7602Source1: Array<number>, 7603Source2: Array<number>): Array<boolean | undefined | null>
}

export declare class Incr_fn_cum_affd1d {
  static make(ctx: NodeCtx): Incr_fn_cum_affd1d
  next(7590Src: number): number
  collect(7590Src: Array<number>): Array<number>
}

export declare class Incr_fn_dema_19e27d {
  static make(ctx: NodeCtx): Incr_fn_dema_19e27d
  next(7862Src: number, 7863Length?: number | undefined | null): number
  collect(7862Src: Array<number>, 7863Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_detrended_price_oscillator_b3a31a {
  static make(ctx: NodeCtx): Incr_fn_detrended_price_oscillator_b3a31a
  next(7813Length?: number | undefined | null, 7814Centered?: boolean | undefined | null): number
  collect(7813Length?: number | undefined | null, 7814Centered?: boolean | undefined | null): Array<number>
}

export declare class Incr_fn_dev_279d49 {
  static make(ctx: NodeCtx): Incr_fn_dev_279d49
  next(7643Src: number, 7644Length?: number | undefined | null): number
  collect(7643Src: Array<number>, 7644Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_donchian_channel_c6e7c1 {
  static make(ctx: NodeCtx): Incr_fn_donchian_channel_c6e7c1
  next(7736Src: number, 7737Length?: number | undefined | null): [number, number, number]
  collect(7736Src: Array<number>, 7737Length?: number | undefined | null): Array<[number, number, number]>
}

export declare class Incr_fn_ease_of_movement_4e4aa0 {
  static make(ctx: NodeCtx): Incr_fn_ease_of_movement_4e4aa0
  next(7882Length?: number | undefined | null, 7883Divisor?: number | undefined | null): number
  collect(7882Length?: number | undefined | null, 7883Divisor?: number | undefined | null): Array<number>
}

export declare class Incr_fn_elder_force_index_2dc1a9 {
  static make(ctx: NodeCtx): Incr_fn_elder_force_index_2dc1a9
  next(7885Length?: number | undefined | null): number
  collect(7885Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_ema_c485e3 {
  static make(ctx: NodeCtx): Incr_fn_ema_c485e3
  next(7625Src: number, 7626Length?: number | undefined | null): number
  collect(7625Src: Array<number>, 7626Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_fwma_4933bd {
  static make(ctx: NodeCtx): Incr_fn_fwma_4933bd
  next(7872Src: number, 7873Length?: number | undefined | null): number
  collect(7872Src: Array<number>, 7873Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_highest_953503 {
  static make(ctx: NodeCtx): Incr_fn_highest_953503
  next(7614Src: number, 7615Length?: number | undefined | null): number
  collect(7614Src: Array<number>, 7615Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_highestbars_a94c2b {
  static make(ctx: NodeCtx): Incr_fn_highestbars_a94c2b
  next(7608Src: number, 7609Length?: number | undefined | null): number | null
  collect(7608Src: Array<number>, 7609Length?: number | undefined | null): Array<number | undefined | null>
}

export declare class Incr_fn_hma_709be9 {
  static make(ctx: NodeCtx): Incr_fn_hma_709be9
  next(7637Src: number, 7638Length?: number | undefined | null): number
  collect(7637Src: Array<number>, 7638Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_know_sure_thing_26c284 {
  static make(ctx: NodeCtx): Incr_fn_know_sure_thing_26c284
  next(7831Src: number, 7832RocLength1?: number | undefined | null, 7833RocLength2?: number | undefined | null, 7834RocLength3?: number | undefined | null, 7835RocLength4?: number | undefined | null, 7836SmaLength1?: number | undefined | null, 7837SmaLength2?: number | undefined | null, 7838SmaLength3?: number | undefined | null, 7839SmaLength4?: number | undefined | null, 7840SigLength?: number | undefined | null): [number, number]
  collect(7831Src: Array<number>, 7832RocLength1?: number | undefined | null, 7833RocLength2?: number | undefined | null, 7834RocLength3?: number | undefined | null, 7835RocLength4?: number | undefined | null, 7836SmaLength1?: number | undefined | null, 7837SmaLength2?: number | undefined | null, 7838SmaLength3?: number | undefined | null, 7839SmaLength4?: number | undefined | null, 7840SigLength?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_lowest_a3ed9b {
  static make(ctx: NodeCtx): Incr_fn_lowest_a3ed9b
  next(7617Src: number, 7618Length?: number | undefined | null): number
  collect(7617Src: Array<number>, 7618Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_lowestbars_689437 {
  static make(ctx: NodeCtx): Incr_fn_lowestbars_689437
  next(7611Src: number, 7612Length?: number | undefined | null): number | null
  collect(7611Src: Array<number>, 7612Length?: number | undefined | null): Array<number | undefined | null>
}

export declare class Incr_fn_lwma_28b1da {
  static make(ctx: NodeCtx): Incr_fn_lwma_28b1da
  next(7634Src: number, 7635Length?: number | undefined | null): number
  collect(7634Src: Array<number>, 7635Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_macd_08982e {
  static make(ctx: NodeCtx): Incr_fn_macd_08982e
  next(7742Src: number, 7743ShortLength?: number | undefined | null, 7744LongLength?: number | undefined | null): number
  collect(7742Src: Array<number>, 7743ShortLength?: number | undefined | null, 7744LongLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_main_c9fea8 {
  static make(ctx: NodeCtx): Incr_fn_main_c9fea8
  next(): void
  collect(): Incr_fn_main_c9fea8_Result
}

export declare class Incr_fn_momentum_f6eb3d {
  static make(ctx: NodeCtx): Incr_fn_momentum_f6eb3d
  next(7848Src: number, 7849Length?: number | undefined | null): number
  collect(7848Src: Array<number>, 7849Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_money_flow_index_f4e8c6 {
  static make(ctx: NodeCtx): Incr_fn_money_flow_index_f4e8c6
  next(7879Src: number, 7880Length?: number | undefined | null): number
  collect(7879Src: Array<number>, 7880Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_price_oscillator_588f58 {
  static make(ctx: NodeCtx): Incr_fn_price_oscillator_588f58
  next(7747Src: number, 7748ShortLength?: number | undefined | null, 7749LongLength?: number | undefined | null): number
  collect(7747Src: Array<number>, 7748ShortLength?: number | undefined | null, 7749LongLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_relative_vigor_index_bf4401 {
  static make(ctx: NodeCtx): Incr_fn_relative_vigor_index_bf4401
  next(7754Length?: number | undefined | null): number
  collect(7754Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_relative_volatility_index_73b11f {
  static make(ctx: NodeCtx): Incr_fn_relative_volatility_index_73b11f
  next(7756Src: number, 7757Length?: number | undefined | null): number
  collect(7756Src: Array<number>, 7757Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_rma_ea70bf {
  static make(ctx: NodeCtx): Incr_fn_rma_ea70bf
  next(7628Src: number, 7629Length?: number | undefined | null): number
  collect(7628Src: Array<number>, 7629Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_roc_68792d {
  static make(ctx: NodeCtx): Incr_fn_roc_68792d
  next(7596Src: number, 7597Length?: number | undefined | null): number
  collect(7596Src: Array<number>, 7597Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_rsi_7e17dd {
  static make(ctx: NodeCtx): Incr_fn_rsi_7e17dd
  next(7650Src: number, 7651Length?: number | undefined | null): number
  collect(7650Src: Array<number>, 7651Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_sma_b7b0be {
  static make(ctx: NodeCtx): Incr_fn_sma_b7b0be
  next(7622Src: number, 7623Length?: number | undefined | null): number
  collect(7622Src: Array<number>, 7623Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_stdev_67ab0a {
  static make(ctx: NodeCtx): Incr_fn_stdev_67ab0a
  next(7656Src: number, 7657Length?: number | undefined | null, 7658Biased?: boolean | undefined | null): number
  collect(7656Src: Array<number>, 7657Length?: number | undefined | null, 7658Biased?: boolean | undefined | null): Array<number>
}

export declare class Incr_fn_stochastic_rsi_839d1a {
  static make(ctx: NodeCtx): Incr_fn_stochastic_rsi_839d1a
  next(7763Src: number, 7764StochLength?: number | undefined | null, 7765RsiLength?: number | undefined | null, 7766K?: number | undefined | null, 7767D?: number | undefined | null): [number, number]
  collect(7763Src: Array<number>, 7764StochLength?: number | undefined | null, 7765RsiLength?: number | undefined | null, 7766K?: number | undefined | null, 7767D?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_supertrend_4850c9 {
  static make(ctx: NodeCtx): Incr_fn_supertrend_4850c9
  next(7662Src: number, 7663Factor: number, 7664AtrPeriod?: number | undefined | null): [number, number | undefined | null]
  collect(7662Src: Array<number>, 7663Factor: number, 7664AtrPeriod?: number | undefined | null): Array<[number, number | undefined | null]>
}

export declare class Incr_fn_swma_f6ed4f {
  static make(ctx: NodeCtx): Incr_fn_swma_f6ed4f
  next(7620Src: number): number
  collect(7620Src: Array<number>): Array<number>
}

export declare class Incr_fn_tema_c148a3 {
  static make(ctx: NodeCtx): Incr_fn_tema_c148a3
  next(7887Src: number, 7888Length?: number | undefined | null): number
  collect(7887Src: Array<number>, 7888Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_tr_624b3c {
  static make(ctx: NodeCtx): Incr_fn_tr_624b3c
  next(7646HandleNa?: boolean | undefined | null): number
  collect(7646HandleNa?: boolean | undefined | null): Array<number>
}

export declare class Incr_fn_trix_a65be1 {
  static make(ctx: NodeCtx): Incr_fn_trix_a65be1
  next(7851Src: number, 7852Length?: number | undefined | null): number
  collect(7851Src: Array<number>, 7852Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_true_strength_index_20aed4 {
  static make(ctx: NodeCtx): Incr_fn_true_strength_index_20aed4
  next(7854Src: number, 7855LongLength?: number | undefined | null, 7856ShortLength?: number | undefined | null): number
  collect(7854Src: Array<number>, 7855LongLength?: number | undefined | null, 7856ShortLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_ultimate_oscillator_480aca {
  static make(ctx: NodeCtx): Incr_fn_ultimate_oscillator_480aca
  next(7776FastLength?: number | undefined | null, 7777MediumLength?: number | undefined | null, 7778SlowLength?: number | undefined | null): number
  collect(7776FastLength?: number | undefined | null, 7777MediumLength?: number | undefined | null, 7778SlowLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_volume_oscillator_12d66d {
  static make(ctx: NodeCtx): Incr_fn_volume_oscillator_12d66d
  next(7788ShortLength?: number | undefined | null, 7789LongLength?: number | undefined | null): number
  collect(7788ShortLength?: number | undefined | null, 7789LongLength?: number | undefined | null): Array<number>
}

export declare class Incr_fn_vortex_indicator_aafc10 {
  static make(ctx: NodeCtx): Incr_fn_vortex_indicator_aafc10
  next(7794Length?: number | undefined | null): [number, number]
  collect(7794Length?: number | undefined | null): Array<[number, number]>
}

export declare class Incr_fn_vwma_116001 {
  static make(ctx: NodeCtx): Incr_fn_vwma_116001
  next(7640Src: number, 7641Length?: number | undefined | null): number
  collect(7640Src: Array<number>, 7641Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_williams_pct_r_723dbe {
  static make(ctx: NodeCtx): Incr_fn_williams_pct_r_723dbe
  next(7801Src: number, 7802Length?: number | undefined | null): number
  collect(7801Src: Array<number>, 7802Length?: number | undefined | null): Array<number>
}

export declare class Incr_fn_wma_6eb905 {
  static make(ctx: NodeCtx): Incr_fn_wma_6eb905
  next(7631Src: number, 7632Length?: number | undefined | null): number
  collect(7631Src: Array<number>, 7632Length?: number | undefined | null): Array<number>
}
/**
 * This type extends JavaScript's `Iterator`, and so has the iterator helper
 * methods. It may extend the upcoming TypeScript `Iterator` class in the future.
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator#iterator_helper_methods
 * @see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-6.html#iterator-helper-methods
 */
export declare class NodeBacktest {
  constructor(ctx: NodeCtx, initialCapital?: number | undefined | null, processOrdersOnClose?: boolean | undefined | null, riskFreeRate?: number | undefined | null, annualizationFactor?: number | undefined | null)
  get initialCapital(): number
  get processOrdersOnClose(): boolean
  get ctx(): NodeCtx
  get equity(): number
  get equityList(): Array<number>
  get netEquity(): number
  get netEquityList(): Array<number>
  get pnlList(): Array<number>
  get openProfit(): number
  get netProfit(): number
  get netProfitPct(): number
  get grossProfit(): number
  get grossProfitPct(): number
  get grossLoss(): number
  get grossLossPct(): number
  get winRate(): number
  get profitFactor(): number
  get avgTrade(): number
  get avgWinningTrade(): number
  get avgLosingTrade(): number
  get avgWinLossRatio(): number
  get returnsList(): Array<number>
  sharpeRatio(): number
  sortinoRatio(): number
  expectancy(): number
  winningTradesCount(): bigint
  get losingTradesCount(): bigint
  get positionSize(): number
  get openTrades(): Array<NodeTrade>
  get closedTrades(): Array<NodeTrade>
  get trades(): Array<NodeTrade>
  get openLongsCount(): bigint
  get openShortsCount(): bigint
  get closedLongsCount(): bigint
  get closedShortsCount(): bigint
  get firstEntryBarIndex(): bigint | null
  get instrumentSize(): number
  onBarOpen(): void
  onBarClose(): void
  signal(signal: NodeSignal): void
  skip(skip: NodeCtxSkip): void
  length(): number
  next(): number | null
  toPine(): string
  display(): void
}

/**
 * This type extends JavaScript's `Iterator`, and so has the iterator helper
 * methods. It may extend the upcoming TypeScript `Iterator` class in the future.
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator#iterator_helper_methods
 * @see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-6.html#iterator-helper-methods
 */
export declare class NodeCtx {
  constructor(ohlcv?: NodeOhlcv | undefined | null, sym?: NodeSym | undefined | null)
  get barIndex(): number
  get bar(): NodeOhlcvBar
  get isInitialized(): boolean
  get sym(): NodeSym
  get ohlcv(): NodeOhlcv
  copy(): NodeCtx
  reset(): void
  next(): number | null
  get length(): number
  skip(skip: NodeCtxSkip): void
  ref(): NodeCtx
}

export declare class NodeCtxSkip {
  static end(): NodeCtxSkip
  static bars(bars: number): NodeCtxSkip
  static barIndex(barIndex: number): NodeCtxSkip
  static openTimeEq(openTime: Date): NodeCtxSkip
  static openTimeGeq(openTime: Date): NodeCtxSkip
}

export declare class NodeOhlcv {
  constructor()
  static fromBars(bars: Array<NodeOhlcvBar>): NodeOhlcv
  get timeframe(): NodeTimeframe
  set timeframe(timeframe: NodeTimeframe)
  get openTime(): Array<Date | undefined | null>
  get closeTime(): Array<Date | undefined | null>
  get open(): Array<number>
  get high(): Array<number>
  get low(): Array<number>
  get close(): Array<number>
  get volume(): Array<number>
  get bars(): Array<NodeOhlcvBar>
  at(index: number): NodeOhlcvBar | null
  get length(): number
  slice(start: number, end: number): NodeOhlcv
  head(count: number): NodeOhlcv
  tail(count: number): NodeOhlcv
  copy(): NodeOhlcv
  extend(other: NodeOhlcv): void
  resample(timeframe: NodeTimeframe, alignUtc: boolean): NodeOhlcv
  sort(ascending: boolean): void
  reverse(): void
  clear(): void
  pop(): NodeOhlcvBar | null
  shift(): NodeOhlcvBar | null
  push(bar: NodeOhlcvBar): void
  pushMany(bars: Array<NodeOhlcvBar>): void
  toString(): string
  ref(): NodeOhlcv
}

export declare class NodeOhlcvBar {
  constructor(openTime?: Date | undefined | null, closeTime?: Date | undefined | null, open?: number | undefined | null, high?: number | undefined | null, low?: number | undefined | null, close?: number | undefined | null, volume?: number | undefined | null)
  get openTime(): Date | null
  set openTime(openTime?: Date | undefined | null)
  get closeTime(): Date | null
  set closeTime(closeTime?: Date | undefined | null)
  get open(): number
  set open(open: number)
  get high(): number
  set high(high: number)
  get low(): number
  set low(low: number)
  get close(): number
  set close(close: number)
  get volume(): number
  set volume(volume: number)
  merge(other: NodeOhlcvBar): NodeOhlcvBar
  toString(): string
  toJSON(): object
  static fromJSON(json: object): NodeOhlcvBar
}

export declare class NodeSignal {
  static Hold(): NodeSignal
  static Size(size: number): NodeSignal
  static EquityPct(equityPct: number): NodeSignal
  static CloseAll(): NodeSignal
  static Long(): NodeSignal
  static Short(): NodeSignal
  get id(): string | null
  set id(id?: string | undefined | null)
  get comment(): string | null
  set comment(comment?: string | undefined | null)
}

export declare class NodeSym {
  constructor()
  toString(): string
  get id(): string | null
  set id(id?: string | undefined | null)
  get tickerId(): string | null
  set tickerId(tickerId?: string | undefined | null)
  get kind(): NodeSymKind
  set kind(kind: NodeSymKind)
  get minTick(): number
  set minTick(v: number)
  get minQty(): number
  set minQty(v: number)
  get prefix(): string | null
  set prefix(v?: string | undefined | null)
  get currency(): string | null
  set currency(v?: string | undefined | null)
  get baseCurrency(): string | null
  set baseCurrency(v?: string | undefined | null)
  get ticker(): string | null
  set ticker(v?: string | undefined | null)
  get country(): string | null
  set country(v?: string | undefined | null)
  get priceScale(): number
  set priceScale(v: number)
  get pointValue(): number
  set pointValue(v: number)
  get metadata(): string | null
  set metadata(v?: string | undefined | null)
  get qtyScale(): number
  static BTC_USD(): NodeSym
  static ETH_USD(): NodeSym
  static SOL_USD(): NodeSym
  static DOGE_USD(): NodeSym
  eq(other: NodeSym): boolean
  toJSON(): object
  static fromJSON(json: object): NodeSym
}

export declare class NodeSymKind {
  toString(): string
  static fromString(text: string): NodeSymKind
  static Stock(): NodeSymKind
  static Future(): NodeSymKind
  static Option(): NodeSymKind
  static Forex(): NodeSymKind
  static Crypto(): NodeSymKind
  static Unknown(): NodeSymKind
  static Other(other: string): NodeSymKind
  eq(other: NodeSymKind): boolean
  get periods(): number
}

export declare class NodeTimeframe {
  toString(): string
  static fromString(timeframe: string): NodeTimeframe
  static Years(value: number): NodeTimeframe
  static Months(value: number): NodeTimeframe
  static Weeks(value: number): NodeTimeframe
  static Days(value: number): NodeTimeframe
  static Hours(value: number): NodeTimeframe
  static Minutes(value: number): NodeTimeframe
  static Seconds(value: number): NodeTimeframe
  static Ticks(value: number): NodeTimeframe
  static Ranges(value: number): NodeTimeframe
  static Unknown(): NodeTimeframe
  get years(): number | null
  get months(): number | null
  get weeks(): number | null
  get days(): number | null
  get hours(): number | null
  get minutes(): number | null
  get seconds(): number | null
  get ticks(): number | null
  get ranges(): number | null
  get unknown(): boolean
  eq(other: NodeTimeframe): boolean
  toDurationS(): number
  static fromDurationS(duration: number): NodeTimeframe
}

export declare class NodeTrade {
  get size(): number
  get entry(): NodeTradeEvent | null
  get exit(): NodeTradeEvent | null
  get pnl(): number
  get direction(): NodeTradeDirection
  get isActive(): boolean
  get isClosed(): boolean
}

export declare class NodeTradeDirection {
  Long(): NodeTradeDirection
  Short(): NodeTradeDirection
  toNumber(): number
  static fromNumber(value: number): NodeTradeDirection
}

export declare class NodeTradeEvent {
  get id(): string | null
  get orderBarIndex(): number
  get fillBarIndex(): number
  get price(): number
  get comment(): string | null
}

export declare function _getCoreVersion(): string

export declare function accuracy(tpCount: number, fpCount: number, fnCount: number, tnCount: number): number

export declare function annualization_factor(timeframe: NodeTimeframe, tradingDays: number): number

export declare function avgLosingTrade(grossLoss: number, losingTrades: number): number

export declare function avgTrade(netProfit: number, closedTrades: number): number

export declare function avgWinLossRatio(avgWinningTrade: number, avgLosingTrade: number): number

export declare function avgWinningTrade(grossProfit: number, winningTrades: number): number

export declare function expectancy(pnl: Float64Array): number

export declare function expectancyScore(expectancy: number, opportunityBars: number): number

export declare function f1(precision: number, recall: number): number

export declare function grossLossPct(grossLoss: number, initialCapital: number): number

export declare function grossProfitPct(grossProfit: number, initialCapital: number): number

export declare function longNetProfitPct(longNetProfit: number, initialCapital: number): number

export declare function longNetProfitRatio(longNetProfit: number, shortNetProfit: number): number

export declare function mean(values: Float64Array): number

export declare function netProfitPct(netProfit: number, initialCapital: number): number

export declare function omegaRatio(positiveReturnsSum: number, negativeReturnsSum: number, riskFreeRate: number): number

export declare function omegaRatioFromReturns(returns: Float64Array, riskFreeRate: number): number

export declare function orderSize(equityPct: number, equity: number, exchangeRate: number, instrumentPrice: number, pointValue: number): number

export declare function orderSizeForEquityPct(equityPct: number, equity: number, currentPosition: number, instrumentPrice: number, pointValue: number, exchangeRate: number): number

export declare function pnl(qty: number, entryPrice: number, currentPrice: number): number

export declare function precision(tpCount: number, fpCount: number): number

export declare function profitFactor(grossProfit: number, grossLoss: number): number

export declare function recall(tpCount: number, fnCount: number): number

export declare function returns(equity: Float64Array, skipFirst?: boolean | undefined | null): Array<number>

export declare function roundContracts(size: number, minQty: number, qtyScale: number): number

export declare function roundToMinTick(value: number, minTick: number): number

export declare function sharpeRatio(meanReturns: number, stdReturns: number, riskFreeRate: number): number

export declare function sharpeRatioFromReturns(returns: Float64Array, riskFreeRate: number): number

export declare function shortNetProfitPct(shortNetProfit: number, initialCapital: number): number

export declare function sortinoRatio(meanReturns: number, negativeReturnsStdev: number, riskFreeRate: number): number

export declare function sortinoRatioFromReturns(returns: Float64Array, riskFreeRate: number): number

export declare function stdev(values: Float64Array): number

export declare function sum(values: Float64Array): number

export declare function validateContracts(size: number, minQty: number): boolean

export declare function variance(values: Float64Array): number

export declare function winRate(profitableTrades: number, totalTrades: number): number

export declare function zipOhlcvBars(openTime?: Array<Date | undefined | null> | undefined | null, closeTime?: Array<Date | undefined | null> | undefined | null, open?: Array<number> | undefined | null, high?: Array<number> | undefined | null, low?: Array<number> | undefined | null, close?: Array<number> | undefined | null, volume?: Array<number> | undefined | null): Array<NodeOhlcvBar>
