import { Stochastic as StochIndicator } from 'technicalindicators';
import { OHLC } from '../types';
import { IndicatorInput, Indicator } from './base-indicator';
export interface StochasticOscillatorInput extends IndicatorInput {
    period?: number;
    signalPeriod?: number;
}
export interface StochasticOscillatorOutput {
    k: number;
    d?: number;
}
/**
 * A stochastic oscillator is a momentum indicator comparing a particular
 * closing price of a security to a range of its prices over a certain
 * period of time. The sensitivity of the oscillator to market movements
 * is reducible by adjusting that time period or by taking a moving average
 * of the result. It is used to generate overbought and oversold trading
 * signals, utilizing a 0–100 bounded range of values.
 */
export declare class Stoch implements Indicator {
    indicator: StochIndicator;
    period: number;
    signalPeriod: number;
    /**
     * @param {OHLC[]} series candles series
     * @param {number} period period for indicator
     * @param {number} signalPeriod period for indicator
     */
    constructor(series: OHLC[], period?: number, signalPeriod?: number);
    /**
     * Retrieve Stoch values for instance
     * @return {StochasticOscillatorOutput[]} values for instance data
     */
    getResults(): StochasticOscillatorOutput[];
    /**
     * Calculate Stoch to next tick
     * @param {OHLC} candle new candle to add to series
     * @return {StochasticOscillatorOutput | undefined} next Stoch value or
     * undefined if period is greater than actual series length
     */
    next(candle: OHLC): StochasticOscillatorOutput | undefined;
    /**
     * Create instance from data
     * @param {StochasticOscillatorInput} input input data
     * @return {Stoch} Stoch instance
     */
    static generator({ series, period, signalPeriod, }: StochasticOscillatorInput): Stoch;
    /**
     * Get Stoch values from input
     * @param {StochasticOscillatorInput} input input data
     * @return {StochasticOscillatorOutput[]} Stoch values
     */
    static calculate(input: StochasticOscillatorInput): StochasticOscillatorOutput[];
}
