/// <reference path="../series/chart-series-model.d.ts" />
import { TechnicalIndicators, FinancialDataFields, MacdType } from './../utils/enum';
import { Series, SeriesBase } from '../series/chart-series';
import { Rect } from '@syncfusion/ej2-svg-base';
import { Chart } from '../chart';
import { ConnectorModel, AccessibilityModel, LinearGradientModel, RadialGradientModel } from '../../common/model/base-model';
/**
 * Defines how to represent the market trend using technical indicators.
 */
export declare class TechnicalIndicator extends SeriesBase {
    /**
     * Defines the types of technical indicators. They are:
     * * 'Sma' - Predicts the trend using the Simple Moving Average approach.
     * * 'Ema' - Predicts the trend using the Exponential Moving Average approach.
     * * 'Tma' - Predicts the trend using the Triangular Moving Average approach.
     * * 'Atr' - Predicts the trend using the Average True Range approach.
     * * 'AccumulationDistribution' - Predicts the trend using the Accumulation Distribution approach.
     * * 'Momentum' - Predicts the trend using the Momentum approach.
     * * 'Rsi' - Predicts the trend using the Relative Strength Index (RSI) approach.
     * * 'Macd' - Predicts the trend using the Moving Average Convergence Divergence (MACD) approach.
     * * 'Stochastic' - Predicts the trend using the Stochastic Oscillator approach.
     * * 'BollingerBands' - Predicts the trend using the Bollinger Bands approach.
     *
     * @default 'Sma'
     */
    type: TechnicalIndicators;
    /**
     * Defines the period over which price changes are considered for trend prediction.
     *
     * @default 14
     */
    period: number;
    /**
     * Defines the look-back period for price changes used to calculate the %K value in stochastic indicators.
     *
     * @default 14
     */
    kPeriod: number;
    /**
     * Defines the period over which price changes determine the %D value in stochastic indicators.
     *
     * @default 3
     */
    dPeriod: number;
    /**
     * Specifies the over-bought (threshold) values applicable for RSI and stochastic indicators.
     *
     * @default 80
     */
    overBought: number;
    /**
     * Defines the over-sold (threshold) values for RSI and stochastic indicators.
     *
     * @default 20
     */
    overSold: number;
    /**
     * Sets the standard deviation values used to define the upper and lower Bollinger Bands.
     *
     * @default 2
     */
    standardDeviation: number;
    /**
     * Defines the field used to compare the current value with previous values.
     *
     * @default 'Close'
     */
    field: FinancialDataFields;
    /**
     * Sets the slow period for defining the MACD line.
     *
     * @default 12
     */
    slowPeriod: number;
    /**
     * Sets the fast period to define the MACD line.
     *
     * @default 26
     */
    fastPeriod: number;
    /**
     * Specifies whether to enable or disable the over-bought and over-sold regions.
     *
     * @default true
     */
    showZones: boolean;
    /**
     * Defines the appearance of the MACD line in the MACD indicator.
     *
     * @default { color: '#ff9933', width: 2 }
     */
    macdLine: ConnectorModel;
    /**
     * Defines the type of the MACD (Moving Average Convergence Divergence) indicator.
     *
     * @default 'Both'
     */
    macdType: MacdType;
    /**
     * Specifies the color for positive bars in the MACD indicator.
     *
     * @default '#2ecd71'
     */
    macdPositiveColor: string;
    /**
     * Specifies the color for negative bars in the MACD indicator.
     *
     * @default '#e74c3d'
     */
    macdNegativeColor: string;
    /**
     * Configures the settings for customizing the Bollinger Bands in the indicator.
     *
     * @default 'rgba(211,211,211,0.25)'
     */
    bandColor: string;
    /**
     * Defines the appearance of the upper line in technical indicators.
     */
    upperLine: ConnectorModel;
    /**
     * Defines the appearance of the lower line in technical indicators.
     */
    lowerLine: ConnectorModel;
    /**
     * Defines the appearance of the period line in technical indicators.
     */
    periodLine: ConnectorModel;
    /**
     * Options to improve accessibility for technical indicator elements.
     */
    accessibility: AccessibilityModel;
    /**
     * Applies a linear gradient fill to the indicator.
     *
     * @default null
     */
    linearGradient: LinearGradientModel;
    /**
     * Applies a radial gradient fill to the indicator.
     *
     * @default null
     */
    radialGradient: RadialGradientModel;
    /**
     * Specifies the name of the series to be used for displaying the indicator data.
     *
     * @default ''
     */
    seriesName: string;
    /** @private */
    targetSeries: Series[];
    /** @private */
    sourceSeries: Series;
    /** @private */
    indicatorElement: Element;
    /** @private */
    clipRectElement: Element;
    /** @private */
    clipRect: Rect;
    /**
     * @private
     */
    gradientId: string;
    /**
     * Sets the data source for the series in the chart.
     *
     * @private
     * @param {Series} series - The series for which the data source is being set.
     * @param {Chart} chart - The chart instance.
     * @returns {void}
     */
    setDataSource(series: Series, chart: Chart): void;
}
