

  import type { Ctx } from 'qpace/node';
  
      



/**
Total money flowing in and out (Accumulation/Distribution)

`accdist() -> float`
*/
export function accdist(ctx: Ctx, ): (number | null | undefined)[];

declare class AccdistLocals {
    

      
}

/**
Total money flowing in and out (Accumulation/Distribution)

`accdist() -> float`
*/
export class Accdist {
  readonly ctx: Ctx;
  readonly locals: AccdistLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(): (number | null | undefined);
}
    



/**
Adds up the values so far (running total)

`cum(series<float> src) -> float`
*/
export function cum(ctx: Ctx, src: (number | null | undefined)[], ): (number | null | undefined)[];

declare class CumLocals {
    

      
}

/**
Adds up the values so far (running total)

`cum(series<float> src) -> float`
*/
export class Cum {
  readonly ctx: Ctx;
  readonly locals: CumLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined)): (number | null | undefined);
}
    



/**
How much it moved from the previous bar

`change(series<float> src) -> series<float>`
*/
export function change(ctx: Ctx, src: (number | null | undefined)[], ): (number | null | undefined)[];

declare class ChangeLocals {
    
}

/**
How much it moved from the previous bar

`change(series<float> src) -> series<float>`
*/
export class Change {
  readonly ctx: Ctx;
  readonly locals: ChangeLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined)): (number | null | undefined);
}
    



/**
Number of bars since something happened

`barssince(series<bool> condition) -> int`
*/
export function barssince(ctx: Ctx, condition: (boolean | null | undefined)[], ): (number | null | undefined)[];

declare class BarssinceLocals {
    

      
}

/**
Number of bars since something happened

`barssince(series<bool> condition) -> int`
*/
export class Barssince {
  readonly ctx: Ctx;
  readonly locals: BarssinceLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(condition: (boolean | null | undefined)): (number | null | undefined);
}
    



/**
Speed of change over given bars

`roc(series<float> src, int length = 14) -> float`
*/
export function roc(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class RocLocals {
    
}

/**
Speed of change over given bars

`roc(series<float> src, int length = 14) -> float`
*/
export class Roc {
  readonly ctx: Ctx;
  readonly locals: RocLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
When line1 moves above line2

`crossover(series<float> source1, series<float> source2) -> bool`
*/
export function crossover(ctx: Ctx, source1: (number | null | undefined)[], source2: (number | null | undefined)[], ): (boolean | null | undefined)[];

declare class CrossoverLocals {
    
}

/**
When line1 moves above line2

`crossover(series<float> source1, series<float> source2) -> bool`
*/
export class Crossover {
  readonly ctx: Ctx;
  readonly locals: CrossoverLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(source1: (number | null | undefined), source2: (number | null | undefined)): (boolean | null | undefined);
}
    



/**
When line1 drops below line2

`crossunder(series<float> source1, series<float> source2) -> bool`
*/
export function crossunder(ctx: Ctx, source1: (number | null | undefined)[], source2: (number | null | undefined)[], ): (boolean | null | undefined)[];

declare class CrossunderLocals {
    
}

/**
When line1 drops below line2

`crossunder(series<float> source1, series<float> source2) -> bool`
*/
export class Crossunder {
  readonly ctx: Ctx;
  readonly locals: CrossunderLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(source1: (number | null | undefined), source2: (number | null | undefined)): (boolean | null | undefined);
}
    



/**
When two lines meet

`cross(series<float> source1, series<float> source2) -> bool`
*/
export function cross(ctx: Ctx, source1: (number | null | undefined)[], source2: (number | null | undefined)[], ): (boolean | null | undefined)[];

declare class CrossLocals {
    
}

/**
When two lines meet

`cross(series<float> source1, series<float> source2) -> bool`
*/
export class Cross {
  readonly ctx: Ctx;
  readonly locals: CrossLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(source1: (number | null | undefined), source2: (number | null | undefined)): (boolean | null | undefined);
}
    



/**
Bar index with highest value in period

`highestbars(series<float> src, int length = 14) -> int`
*/
export function highestbars(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class HighestbarsLocals {
    

      
}

/**
Bar index with highest value in period

`highestbars(series<float> src, int length = 14) -> int`
*/
export class Highestbars {
  readonly ctx: Ctx;
  readonly locals: HighestbarsLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Bar index with lowest value in period

`lowestbars(series<float> src, int length = 14) -> int`
*/
export function lowestbars(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class LowestbarsLocals {
    

      
}

/**
Bar index with lowest value in period

`lowestbars(series<float> src, int length = 14) -> int`
*/
export class Lowestbars {
  readonly ctx: Ctx;
  readonly locals: LowestbarsLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Highest value in period

`highest(series<float> src, int length = 14) -> float`
*/
export function highest(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class HighestLocals {
    

      
}

/**
Highest value in period

`highest(series<float> src, int length = 14) -> float`
*/
export class Highest {
  readonly ctx: Ctx;
  readonly locals: HighestLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Lowest value in period

`lowest(series<float> src, int length = 14) -> float`
*/
export function lowest(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class LowestLocals {
    

      
}

/**
Lowest value in period

`lowest(series<float> src, int length = 14) -> float`
*/
export class Lowest {
  readonly ctx: Ctx;
  readonly locals: LowestLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Smoothed weighted moving average line

`swma(series<float> src) -> float`
*/
export function swma(ctx: Ctx, src: (number | null | undefined)[], ): (number | null | undefined)[];

declare class SwmaLocals {
    
}

/**
Smoothed weighted moving average line

`swma(series<float> src) -> float`
*/
export class Swma {
  readonly ctx: Ctx;
  readonly locals: SwmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined)): (number | null | undefined);
}
    



/**
Simple moving average (plain average)

`sma(series<float> src, int length = 14) -> float`
*/
export function sma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class SmaLocals {
    

      
}

/**
Simple moving average (plain average)

`sma(series<float> src, int length = 14) -> float`
*/
export class Sma {
  readonly ctx: Ctx;
  readonly locals: SmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Exponential moving average (reacts faster)

`ema(series<float> src, int length = 14) -> float`
*/
export function ema(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class EmaLocals {
    

      
}

/**
Exponential moving average (reacts faster)

`ema(series<float> src, int length = 14) -> float`
*/
export class Ema {
  readonly ctx: Ctx;
  readonly locals: EmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
RMA used inside RSI

`rma(series<float> src, int length = 14) -> float`
*/
export function rma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class RmaLocals {
    

      
}

/**
RMA used inside RSI

`rma(series<float> src, int length = 14) -> float`
*/
export class Rma {
  readonly ctx: Ctx;
  readonly locals: RmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Weighted moving average (recent bars matter more)

`wma(series<float> src, int length = 14) -> float`
*/
export function wma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class WmaLocals {
    
}

/**
Weighted moving average (recent bars matter more)

`wma(series<float> src, int length = 14) -> float`
*/
export class Wma {
  readonly ctx: Ctx;
  readonly locals: WmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Linear weighted moving average

`lwma(series<float> src, int length = 14) -> float`
*/
export function lwma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class LwmaLocals {
    
}

/**
Linear weighted moving average

`lwma(series<float> src, int length = 14) -> float`
*/
export class Lwma {
  readonly ctx: Ctx;
  readonly locals: LwmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Hull moving average (smooth and fast)

`hma(series<float> src, int length = 14) -> float`
*/
export function hma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class HmaLocals {
    

      
}

/**
Hull moving average (smooth and fast)

`hma(series<float> src, int length = 14) -> float`
*/
export class Hma {
  readonly ctx: Ctx;
  readonly locals: HmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Volume‑weighted moving average

`vwma(series<float> src, int length = 14) -> float`
*/
export function vwma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class VwmaLocals {
    

      
}

/**
Volume‑weighted moving average

`vwma(series<float> src, int length = 14) -> float`
*/
export class Vwma {
  readonly ctx: Ctx;
  readonly locals: VwmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Standard deviation (how much it varies)

`dev(series<float> src, int length = 14) -> float`
*/
export function dev(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class DevLocals {
    

      
}

/**
Standard deviation (how much it varies)

`dev(series<float> src, int length = 14) -> float`
*/
export class Dev {
  readonly ctx: Ctx;
  readonly locals: DevLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
True range (how much price moved in bar)

`tr(bool handle_na = true) -> series<float>`
*/
export function tr(ctx: Ctx, handle_na?: (boolean | null | undefined) | undefined, ): (number | null | undefined)[];

declare class TrLocals {
    
}

/**
True range (how much price moved in bar)

`tr(bool handle_na = true) -> series<float>`
*/
export class Tr {
  readonly ctx: Ctx;
  readonly locals: TrLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(handle_na?: (boolean | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Average true range (typical move size)

`atr(int length = 14) -> float`
*/
export function atr(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class AtrLocals {
    

      
}

/**
Average true range (typical move size)

`atr(int length = 14) -> float`
*/
export class Atr {
  readonly ctx: Ctx;
  readonly locals: AtrLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Relative Strength Index (momentum strength)

`rsi(series<float> src, int length = 14) -> float`
*/
export function rsi(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class RsiLocals {
    

      
}

/**
Relative Strength Index (momentum strength)

`rsi(series<float> src, int length = 14) -> float`
*/
export class Rsi {
  readonly ctx: Ctx;
  readonly locals: RsiLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Commodity Channel Index (price vs average)

`cci(series<float> src, int length = 14) -> float`
*/
export function cci(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class CciLocals {
    

      
}

/**
Commodity Channel Index (price vs average)

`cci(series<float> src, int length = 14) -> float`
*/
export class Cci {
  readonly ctx: Ctx;
  readonly locals: CciLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Standard deviation over period

`stdev(series<float> src, int length, bool biased = true) -> float`
*/
export function stdev(ctx: Ctx, src: (number | null | undefined)[], length: (number | null | undefined), biased?: (boolean | null | undefined) | undefined, ): (number | null | undefined)[];

declare class StdevLocals {
    

      
}

/**
Standard deviation over period

`stdev(series<float> src, int length, bool biased = true) -> float`
*/
export class Stdev {
  readonly ctx: Ctx;
  readonly locals: StdevLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length: (number | null | undefined), biased?: (boolean | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Aroon indicator (time since highs/lows)

`aroon(int length = 14) -> [float, float]`
*/
export function aroon(ctx: Ctx, length?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class AroonLocals {
    

      
}

/**
Aroon indicator (time since highs/lows)

`aroon(int length = 14) -> [float, float]`
*/
export class Aroon {
  readonly ctx: Ctx;
  readonly locals: AroonLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Supertrend line for direction

`supertrend(series<float> src, float factor, int atr_period) -> [float, int]`
*/
export function supertrend(ctx: Ctx, src: (number | null | undefined)[], factor: (number | null | undefined), atr_period: (number | null | undefined), ): [(number | null | undefined), (number | null | undefined)];

declare class SupertrendLocals {
    

      
}

/**
Supertrend line for direction

`supertrend(series<float> src, float factor, int atr_period) -> [float, int]`
*/
export class Supertrend {
  readonly ctx: Ctx;
  readonly locals: SupertrendLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), factor: (number | null | undefined), atr_period: (number | null | undefined)): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Awesome Oscillator (momentum)

`awesome_oscillator(series<float> src, int slow_length = 5, int fast_length = 34) -> float`
*/
export function awesomeOscillator(ctx: Ctx, src: (number | null | undefined)[], slow_length?: (number | null | undefined) | undefined, fast_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class AwesomeOscillatorLocals {
    

      
}

/**
Awesome Oscillator (momentum)

`awesome_oscillator(series<float> src, int slow_length = 5, int fast_length = 34) -> float`
*/
export class AwesomeOscillator {
  readonly ctx: Ctx;
  readonly locals: AwesomeOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), slow_length?: (number | null | undefined) | undefined, fast_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Balance of power between buyers and sellers

`balance_of_power() -> float`
*/
export function balanceOfPower(ctx: Ctx, ): (number | null | undefined)[];

declare class BalanceOfPowerLocals {
    
}

/**
Balance of power between buyers and sellers

`balance_of_power() -> float`
*/
export class BalanceOfPower {
  readonly ctx: Ctx;
  readonly locals: BalanceOfPowerLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(): (number | null | undefined);
}
    



/**
%B – where price is inside Bollinger Bands (0‑1)

`bollinger_bands_pct_b(series<float> src, int length = 20, float mult = 2.0) -> float`
*/
export function bollingerBandsPctB(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class BollingerBandsPctBLocals {
    

      
}

/**
%B – where price is inside Bollinger Bands (0‑1)

`bollinger_bands_pct_b(series<float> src, int length = 20, float mult = 2.0) -> float`
*/
export class BollingerBandsPctB {
  readonly ctx: Ctx;
  readonly locals: BollingerBandsPctBLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Band width – how wide Bollinger Bands are

`bollinger_bands_width(series<float> src, int length = 20, float mult = 2.0) -> float`
*/
export function bollingerBandsWidth(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class BollingerBandsWidthLocals {
    

      
}

/**
Band width – how wide Bollinger Bands are

`bollinger_bands_width(series<float> src, int length = 20, float mult = 2.0) -> float`
*/
export class BollingerBandsWidth {
  readonly ctx: Ctx;
  readonly locals: BollingerBandsWidthLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Gives upper and lower Bollinger Bands

`bollinger_bands(series<float> src, int length = 20, float mult = 2.0) -> [float, float]`
*/
export function bollingerBands(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class BollingerBandsLocals {
    

      
}

/**
Gives upper and lower Bollinger Bands

`bollinger_bands(series<float> src, int length = 20, float mult = 2.0) -> [float, float]`
*/
export class BollingerBands {
  readonly ctx: Ctx;
  readonly locals: BollingerBandsLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined, mult?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Chaikin Money Flow – volume weighted flow

`chaikin_money_flow(int length = 20) -> float`
*/
export function chaikinMoneyFlow(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class ChaikinMoneyFlowLocals {
    

    readonly cumVol: (number | null | undefined);
  
      
}

/**
Chaikin Money Flow – volume weighted flow

`chaikin_money_flow(int length = 20) -> float`
*/
export class ChaikinMoneyFlow {
  readonly ctx: Ctx;
  readonly locals: ChaikinMoneyFlowLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Chande‑Kroll stop lines

`chande_kroll_stop(int atr_length = 10, float atr_coeff = 1.0, int stop_length = 9) -> [float, float]`
*/
export function chandeKrollStop(ctx: Ctx, atr_length?: (number | null | undefined) | undefined, atr_coeff?: (number | null | undefined) | undefined, stop_length?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class ChandeKrollStopLocals {
    

      
}

/**
Chande‑Kroll stop lines

`chande_kroll_stop(int atr_length = 10, float atr_coeff = 1.0, int stop_length = 9) -> [float, float]`
*/
export class ChandeKrollStop {
  readonly ctx: Ctx;
  readonly locals: ChandeKrollStopLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(atr_length?: (number | null | undefined) | undefined, atr_coeff?: (number | null | undefined) | undefined, stop_length?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Choppiness Index – tells if market is sideways or trending

`choppiness_index(int length = 14) -> float`
*/
export function choppinessIndex(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class ChoppinessIndexLocals {
    

      
}

/**
Choppiness Index – tells if market is sideways or trending

`choppiness_index(int length = 14) -> float`
*/
export class ChoppinessIndex {
  readonly ctx: Ctx;
  readonly locals: ChoppinessIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
`connors_rsi(series<float> src, int rsi_length = 3, int up_down_length = 2, int roc_length = 100) -> float`
*/
export function connorsRsi(ctx: Ctx, src: (number | null | undefined)[], rsi_length?: (number | null | undefined) | undefined, up_down_length?: (number | null | undefined) | undefined, roc_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class ConnorsRsiLocals {
    

      
}

/**
`connors_rsi(series<float> src, int rsi_length = 3, int up_down_length = 2, int roc_length = 100) -> float`
*/
export class ConnorsRsi {
  readonly ctx: Ctx;
  readonly locals: ConnorsRsiLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), rsi_length?: (number | null | undefined) | undefined, up_down_length?: (number | null | undefined) | undefined, roc_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Coppock Curve – long‑term momentum

`coppock_curve(series<float> src, int wma_length = 10, int long_roc_length = 14, int short_roc_length = 11) -> float`
*/
export function coppockCurve(ctx: Ctx, src: (number | null | undefined)[], wma_length?: (number | null | undefined) | undefined, long_roc_length?: (number | null | undefined) | undefined, short_roc_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class CoppockCurveLocals {
    

      
}

/**
Coppock Curve – long‑term momentum

`coppock_curve(series<float> src, int wma_length = 10, int long_roc_length = 14, int short_roc_length = 11) -> float`
*/
export class CoppockCurve {
  readonly ctx: Ctx;
  readonly locals: CoppockCurveLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), wma_length?: (number | null | undefined) | undefined, long_roc_length?: (number | null | undefined) | undefined, short_roc_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Donchian Channel highs/lows

`donchian_channel(series<float> src, int length = 20) -> [float, float, float]`
*/
export function donchianChannel(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined), (number | null | undefined)];

declare class DonchianChannelLocals {
    

      
}

/**
Donchian Channel highs/lows

`donchian_channel(series<float> src, int length = 20) -> [float, float, float]`
*/
export class DonchianChannel {
  readonly ctx: Ctx;
  readonly locals: DonchianChannelLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined), (number | null | undefined)];
}
    



/**
MACD line (fast trend vs slow)

`macd(series<float> src, int short_length = 12, int long_length = 26) -> float`
*/
export function macd(ctx: Ctx, src: (number | null | undefined)[], short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class MacdLocals {
    

      
}

/**
MACD line (fast trend vs slow)

`macd(series<float> src, int short_length = 12, int long_length = 26) -> float`
*/
export class Macd {
  readonly ctx: Ctx;
  readonly locals: MacdLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Price oscillator in percent

`price_oscillator(series<float> src, int short_length = 12, int long_length = 26) -> float`
*/
export function priceOscillator(ctx: Ctx, src: (number | null | undefined)[], short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class PriceOscillatorLocals {
    

      
}

/**
Price oscillator in percent

`price_oscillator(series<float> src, int short_length = 12, int long_length = 26) -> float`
*/
export class PriceOscillator {
  readonly ctx: Ctx;
  readonly locals: PriceOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Relative Vigor Index – strength of close vs range

`relative_vigor_index(int length = 14) -> float`
*/
export function relativeVigorIndex(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class RelativeVigorIndexLocals {
    

      
}

/**
Relative Vigor Index – strength of close vs range

`relative_vigor_index(int length = 14) -> float`
*/
export class RelativeVigorIndex {
  readonly ctx: Ctx;
  readonly locals: RelativeVigorIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Relative Volatility Index – like RSI but for volatility

`relative_volatility_index(series<float> src, int length = 14) -> float`
*/
export function relativeVolatilityIndex(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class RelativeVolatilityIndexLocals {
    

      
}

/**
Relative Volatility Index – like RSI but for volatility

`relative_volatility_index(series<float> src, int length = 14) -> float`
*/
export class RelativeVolatilityIndex {
  readonly ctx: Ctx;
  readonly locals: RelativeVolatilityIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Stochastic RSI

`stochastic_rsi(series<float> src, int stoch_length = 14, int rsi_length = 14, int k = 3, int d = 3) -> [float, float]`
*/
export function stochasticRsi(ctx: Ctx, src: (number | null | undefined)[], stoch_length?: (number | null | undefined) | undefined, rsi_length?: (number | null | undefined) | undefined, k?: (number | null | undefined) | undefined, d?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class StochasticRsiLocals {
    

      
}

/**
Stochastic RSI

`stochastic_rsi(series<float> src, int stoch_length = 14, int rsi_length = 14, int k = 3, int d = 3) -> [float, float]`
*/
export class StochasticRsi {
  readonly ctx: Ctx;
  readonly locals: StochasticRsiLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), stoch_length?: (number | null | undefined) | undefined, rsi_length?: (number | null | undefined) | undefined, k?: (number | null | undefined) | undefined, d?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Ultimate Oscillator – combines 3 speeds

`ultimate_oscillator(int fast_length = 7, int medium_length = 14, int slow_length = 28) -> float`
*/
export function ultimateOscillator(ctx: Ctx, fast_length?: (number | null | undefined) | undefined, medium_length?: (number | null | undefined) | undefined, slow_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class UltimateOscillatorLocals {
    

      
}

/**
Ultimate Oscillator – combines 3 speeds

`ultimate_oscillator(int fast_length = 7, int medium_length = 14, int slow_length = 28) -> float`
*/
export class UltimateOscillator {
  readonly ctx: Ctx;
  readonly locals: UltimateOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(fast_length?: (number | null | undefined) | undefined, medium_length?: (number | null | undefined) | undefined, slow_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Volume Oscillator – volume momentum

`volume_oscillator(int short_length = 5, int long_length = 10) -> float`
*/
export function volumeOscillator(ctx: Ctx, short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class VolumeOscillatorLocals {
    

      
}

/**
Volume Oscillator – volume momentum

`volume_oscillator(int short_length = 5, int long_length = 10) -> float`
*/
export class VolumeOscillator {
  readonly ctx: Ctx;
  readonly locals: VolumeOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(short_length?: (number | null | undefined) | undefined, long_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Vortex Indicator – shows trend direction

`vortex_indicator(int length = 14) -> [float, float]`
*/
export function vortexIndicator(ctx: Ctx, length?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class VortexIndicatorLocals {
    

      
}

/**
Vortex Indicator – shows trend direction

`vortex_indicator(int length = 14) -> [float, float]`
*/
export class VortexIndicator {
  readonly ctx: Ctx;
  readonly locals: VortexIndicatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Williams %R – overbought/oversold

`williams_pct_r(series<float> src, int length = 14) -> float`
*/
export function williamsPctR(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class WilliamsPctRLocals {
    

      
}

/**
Williams %R – overbought/oversold

`williams_pct_r(series<float> src, int length = 14) -> float`
*/
export class WilliamsPctR {
  readonly ctx: Ctx;
  readonly locals: WilliamsPctRLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Advance/Decline Ratio (Bars)

`advance_decline_ratio(int length = 9) -> float`
*/
export function advanceDeclineRatio(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class AdvanceDeclineRatioLocals {
    

      
}

/**
Advance/Decline Ratio (Bars)

`advance_decline_ratio(int length = 9) -> float`
*/
export class AdvanceDeclineRatio {
  readonly ctx: Ctx;
  readonly locals: AdvanceDeclineRatioLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Detrended Price Oscillator (DPO)

`detrended_price_oscillator(int length = 21, bool centered = false) -> series<float>`
*/
export function detrendedPriceOscillator(ctx: Ctx, length?: (number | null | undefined) | undefined, centered?: (boolean | null | undefined) | undefined, ): (number | null | undefined)[];

declare class DetrendedPriceOscillatorLocals {
    

      
}

/**
Detrended Price Oscillator (DPO)

`detrended_price_oscillator(int length = 21, bool centered = false) -> series<float>`
*/
export class DetrendedPriceOscillator {
  readonly ctx: Ctx;
  readonly locals: DetrendedPriceOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined, centered?: (boolean | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Bull Bear Power (BBP)

`bull_bear_power(int length = 13) -> series<float>`
*/
export function bullBearPower(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class BullBearPowerLocals {
    

      
}

/**
Bull Bear Power (BBP)

`bull_bear_power(int length = 13) -> series<float>`
*/
export class BullBearPower {
  readonly ctx: Ctx;
  readonly locals: BullBearPowerLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Absolute Price Oscillator (APO)

`absolute_price_oscillator(series<float> src, int fast_length = 12, int slow_length = 26) -> float`
*/
export function absolutePriceOscillator(ctx: Ctx, src: (number | null | undefined)[], fast_length?: (number | null | undefined) | undefined, slow_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class AbsolutePriceOscillatorLocals {
    

      
}

/**
Absolute Price Oscillator (APO)

`absolute_price_oscillator(series<float> src, int fast_length = 12, int slow_length = 26) -> float`
*/
export class AbsolutePriceOscillator {
  readonly ctx: Ctx;
  readonly locals: AbsolutePriceOscillatorLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), fast_length?: (number | null | undefined) | undefined, slow_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Know Sure Thing (KST)

`know_sure_thing(series<float> src, int roc_length1 = 10, int roc_length2 = 15, int roc_length3 = 20, int roc_length4 = 30, int sma_length1 = 10, int sma_length2 = 10, int sma_length3 = 10, int sma_length4 = 15, int sig_length = 9) -> [float, float]`
*/
export function knowSureThing(ctx: Ctx, src: (number | null | undefined)[], roc_length1?: (number | null | undefined) | undefined, roc_length2?: (number | null | undefined) | undefined, roc_length3?: (number | null | undefined) | undefined, roc_length4?: (number | null | undefined) | undefined, sma_length1?: (number | null | undefined) | undefined, sma_length2?: (number | null | undefined) | undefined, sma_length3?: (number | null | undefined) | undefined, sma_length4?: (number | null | undefined) | undefined, sig_length?: (number | null | undefined) | undefined, ): [(number | null | undefined), (number | null | undefined)];

declare class KnowSureThingLocals {
    

      
}

/**
Know Sure Thing (KST)

`know_sure_thing(series<float> src, int roc_length1 = 10, int roc_length2 = 15, int roc_length3 = 20, int roc_length4 = 30, int sma_length1 = 10, int sma_length2 = 10, int sma_length3 = 10, int sma_length4 = 15, int sig_length = 9) -> [float, float]`
*/
export class KnowSureThing {
  readonly ctx: Ctx;
  readonly locals: KnowSureThingLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), roc_length1?: (number | null | undefined) | undefined, roc_length2?: (number | null | undefined) | undefined, roc_length3?: (number | null | undefined) | undefined, roc_length4?: (number | null | undefined) | undefined, sma_length1?: (number | null | undefined) | undefined, sma_length2?: (number | null | undefined) | undefined, sma_length3?: (number | null | undefined) | undefined, sma_length4?: (number | null | undefined) | undefined, sig_length?: (number | null | undefined) | undefined): [(number | null | undefined), (number | null | undefined)];
}
    



/**
Momentum (MOM)

`momentum(series<float> src, int length = 10) -> series<float>`
*/
export function momentum(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class MomentumLocals {
    
}

/**
Momentum (MOM)

`momentum(series<float> src, int length = 10) -> series<float>`
*/
export class Momentum {
  readonly ctx: Ctx;
  readonly locals: MomentumLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Trix

`trix(series<float> src, int length = 18) -> series<float>`
*/
export function trix(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class TrixLocals {
    

      
}

/**
Trix

`trix(series<float> src, int length = 18) -> series<float>`
*/
export class Trix {
  readonly ctx: Ctx;
  readonly locals: TrixLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
True Strength Index (TSI)

`true_strength_index(series<float> src, int long_length = 25, int short_length = 13) -> float`
*/
export function trueStrengthIndex(ctx: Ctx, src: (number | null | undefined)[], long_length?: (number | null | undefined) | undefined, short_length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class TrueStrengthIndexLocals {
    

      
}

/**
True Strength Index (TSI)

`true_strength_index(series<float> src, int long_length = 25, int short_length = 13) -> float`
*/
export class TrueStrengthIndex {
  readonly ctx: Ctx;
  readonly locals: TrueStrengthIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), long_length?: (number | null | undefined) | undefined, short_length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Double Exponential Moving Average (DEMA)

`dema(series<float> src, int length = 9) -> float`
*/
export function dema(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class DemaLocals {
    

      
}

/**
Double Exponential Moving Average (DEMA)

`dema(series<float> src, int length = 9) -> float`
*/
export class Dema {
  readonly ctx: Ctx;
  readonly locals: DemaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Fibonacci Weighted Moving Average (FWMA)

`fwma(series<float> src, int length = 14) -> float`
*/
export function fwma(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class FwmaLocals {
    
}

/**
Fibonacci Weighted Moving Average (FWMA)

`fwma(series<float> src, int length = 14) -> float`
*/
export class Fwma {
  readonly ctx: Ctx;
  readonly locals: FwmaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Money Flow Index (MFI)

`money_flow_index(series<float> src, int length = 14) -> float`
*/
export function moneyFlowIndex(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class MoneyFlowIndexLocals {
    

      
}

/**
Money Flow Index (MFI)

`money_flow_index(series<float> src, int length = 14) -> float`
*/
export class MoneyFlowIndex {
  readonly ctx: Ctx;
  readonly locals: MoneyFlowIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Ease of Movement (EOM)

`ease_of_movement(int length = 14, int divisor = 10000) -> float`
*/
export function easeOfMovement(ctx: Ctx, length?: (number | null | undefined) | undefined, divisor?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class EaseOfMovementLocals {
    

      
}

/**
Ease of Movement (EOM)

`ease_of_movement(int length = 14, int divisor = 10000) -> float`
*/
export class EaseOfMovement {
  readonly ctx: Ctx;
  readonly locals: EaseOfMovementLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined, divisor?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Elder Force Index (EFI)

`elder_force_index(int length = 13) -> float`
*/
export function elderForceIndex(ctx: Ctx, length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class ElderForceIndexLocals {
    

      
}

/**
Elder Force Index (EFI)

`elder_force_index(int length = 13) -> float`
*/
export class ElderForceIndex {
  readonly ctx: Ctx;
  readonly locals: ElderForceIndexLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    



/**
Tripple Exponential Moving Average (TEMA)

`tema(series<float> src, int length = 9) -> float`
*/
export function tema(ctx: Ctx, src: (number | null | undefined)[], length?: (number | null | undefined) | undefined, ): (number | null | undefined)[];

declare class TemaLocals {
    

      
}

/**
Tripple Exponential Moving Average (TEMA)

`tema(series<float> src, int length = 9) -> float`
*/
export class Tema {
  readonly ctx: Ctx;
  readonly locals: TemaLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(src: (number | null | undefined), length?: (number | null | undefined) | undefined): (number | null | undefined);
}
    


export type MainAlert = {
    time: Date;
    barIndex: number;
    title?: string;
    message?: string;
}


export type MainResultLocals = {

}

export type MainResult = {
    alerts: MainAlert[];
    locals: MainResultLocals;
}
  

/**
`main() -> void`
*/
export function main(ctx: Ctx, ): MainResult;

declare class MainLocals {
    
}

/**
`main() -> void`
*/
export class Main {
  readonly ctx: Ctx;
  readonly locals: MainLocals;
  
  constructor(ctx: Ctx, );

 // getCtx(): Ctx;

  next(): void;
}
    
        