import { IKeyObjectValue } from "../../../type";
import { BuiltInVariables } from "../buildInVariables";
import BuildInTimeframe from "./timeframe";
import BuildInMath from "./math";
interface ITaArgs {
    series?: number;
    length?: number;
    offset?: number;
    sigma?: number;
    floor?: boolean;
    source?: number;
    condition?: boolean;
    biased?: boolean;
    mult?: number;
    source_a?: number;
    source_b?: number;
    diLength?: number;
    adxSmoothing?: number;
    useTrueRange?: boolean;
    fastlen?: number;
    slowlen?: number;
    siglen?: number;
    percentage?: number;
    type?: string;
    anchor?: boolean;
    developing?: boolean;
    leftbars?: number;
    rightbars?: number;
    start?: number;
    inc?: number;
    max?: number;
    high?: number;
    low?: number;
    factor?: number;
    atrPeriod?: number;
    handle_na?: boolean;
    short_length?: number;
    long_length?: number;
    occurrence?: number;
    stdev_mult?: number;
    isSeriesLen?: boolean;
    x?: number;
    y?: number;
}
export default class BuildInTa extends BuildInMath {
    private _taCacheDataLoc;
    protected _variables: BuiltInVariables;
    protected _timeframe: BuildInTimeframe;
    constructor(variables: BuiltInVariables);
    get _taCacheData(): IKeyObjectValue;
    set _taCacheData(data: IKeyObjectValue);
    alma({ series, length, offset, sigma, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    sma({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    rma({ source, length, isSeriesLen }: ITaArgs, posStr: string): any;
    atr({ length, isSeriesLen }: ITaArgs, posStr: string): any;
    barssince({ condition }: ITaArgs, posStr: string): any;
    stdev({ source, length, biased, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    private _sum;
    cci({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    change({ source, length, isSeriesLen }: ITaArgs, posStr: string): any;
    cog({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    correlation({ source_a, source_b, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    cross({ x, y }: ITaArgs, posStr: string): any;
    crossover({ x, y }: ITaArgs, posStr: string): any;
    crossunder({ x, y }: ITaArgs, posStr: string): any;
    cum({ x }: ITaArgs, posStr: string): any;
    dev({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    ema({ source, length, isSeriesLen }: ITaArgs, posStr: string): any;
    falling({ source, length }: ITaArgs, posStr: string): any;
    rising({ source, length }: ITaArgs, posStr: string): any;
    highest(args: ITaArgs, posStr: string): number | undefined;
    highestbars(args: ITaArgs, posStr: string): number | undefined;
    wma({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    linreg({ source, length, offset, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    lowest(args: ITaArgs, posStr: string): number | undefined;
    lowestbars(args: ITaArgs, posStr: string): number | undefined;
    macd({ source, fastlen, slowlen, siglen }: ITaArgs, posStr: string): any[];
    mom({ source, length, isSeriesLen }: ITaArgs, posStr: string): any;
    percentile_linear_interpolation({ source, length, percentage, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    percentile_nearest_rank({ source, length, percentage, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    percentrank({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    pivothigh(args: ITaArgs, posStr: string): any;
    pivotlow(args: ITaArgs, posStr: string): any;
    roc({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    rsi({ x: source, y: length, isSeriesLen }: ITaArgs, posStr: string): any;
    sar({ start, inc, max }: ITaArgs, posStr: string): any;
    stoch({ source, high, low, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    swma({ x }: ITaArgs, posStr: string): any;
    tr({ handle_na }: ITaArgs, posStr: string): any;
    tsi({ source, short_length, long_length }: ITaArgs, posStr: string): number | undefined;
    private _doubleSmooth;
    valuewhen({ condition, source, occurrence }: ITaArgs, posStr: string): any;
    variance({ source, length, biased, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    vwap({ x }: ITaArgs, posStr: string): any;
    vwma({ source, length, isSeriesLen }: ITaArgs, posStr: string): number | undefined;
    private _sort;
    private _cacheDataList;
    private _getCacheData;
    private _cacheDataHandle;
    private _verifyCacheData;
}
export {};
