import type { GradientParams } from "../../../Core/GradientParams";
import { NumberRange } from "../../../Core/NumberRange";
import { EDataPointWidthMode } from "../../../types/DataPointWidthMode";
import { ESeriesType } from "../../../types/SeriesType";
import type { TSciChart } from "../../../types/TSciChart";
import type { IPaletteProvider } from "../../Model/IPaletteProvider";
import type { IBoxPlotPointSeries } from "../../Model/PointSeries/IPointSeries";
import type { ResamplingParams } from "../../Numerics/Resamplers/ResamplingParams";
import type { IThemeProvider } from "../../Themes/IThemeProvider";
import { BaseRenderableSeries } from "./BaseRenderableSeries";
import type { IHitTestProvider } from "./HitTest/IHitTestProvider";
import type { IBaseRenderableSeriesOptions } from "./IBaseRenderableSeriesOptions";
type TStrokeProperties = {
    /**
     * The stroke for the element
     * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```
     */
    stroke?: string;
    /**
     * The stroke thickness for the element
     */
    strokeThickness?: number;
    /**
     * The StrokeDashArray defines the stroke or dash pattern for the line.
     * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.
     */
    strokeDashArray?: number[];
};
type TCapProperty = TStrokeProperties & {
    /**
     * The width of caps.
     * By default the value is treated as relative, valid values range from 0.0 - 1.0.
     * To specify if the value should be treated as relative, absolute, or based on range use {@link dataPointWidthMode}
     */
    dataPointWidth?: number;
};
/**
 * Options to pass to the {@link FastBoxPlotRenderableSeries} constructor
 */
export interface IFastBoxPlotRenderableSeriesOptions extends IBaseRenderableSeriesOptions {
    /**
     * Sets the mode which determines how dataPointWidth is interpreted. Available values are {@link EDataPointWidthMode}.  Default Relative.
     */
    dataPointWidthMode?: EDataPointWidthMode;
    /**
     * Sets cap properties for {@link FastBoxPlotRenderableSeries}
     */
    cap?: TCapProperty;
    /**
     * Sets whiskers properties for {@link FastBoxPlotRenderableSeries}
     */
    whiskers?: TStrokeProperties;
    /**
     * Sets median line properties for {@link FastBoxPlotRenderableSeries}
     */
    medianLine?: TStrokeProperties;
    /**
     * The width of the box.
     * By default the value is treated as relative, valid values range from 0.0 - 1.0.
     * To specify if the value should be treated as relative, absolute, or based on range use {@link dataPointWidthMode}
     */
    dataPointWidth?: number;
    /**
     * The stroke for the box
     */
    stroke?: string;
    /**
     * The stroke thickness for the box
     */
    strokeThickness?: number;
    /**
     * The StrokeDashArray defines the stroke or dash pattern for the box.
     * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.
     */
    strokeDashArray?: number[];
    /**
     * The box fill as an HTML color code
     */
    fill?: string;
    /**
     * Sets the fill as a gradient brush
     */
    fillLinearGradient?: GradientParams;
}
/**
 * Defines an Box Plot Series or Box Plot chart type in the SciChart's High Performance Real-time
 * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
 * @remarks
 * To add a line series to a {@link SciChartSurface} you need to declare both the {@link FastBoxPlotRenderableSeries | RenderableSeries}
 * and a {@link BoxPlotDataSeries | DataSeries}. Simplified code sample below:
 *
 * ```ts
 * const sciChartSurface: SciChartSurface;
 * const wasmContext: TSciChart;
 * // Create and fill the dataseries
 * const dataSeries = new BoxPlotDataSeries(wasmContext);
 * dataSeries.append(4.5, 0, 10, 4.5, 3, 7);
 * dataSeries.append(5.5, 1, 9, 5.5, 4, 6);
 * // Create the renderableSeries
 * const boxPlotSeries = new FastBoxPlotRenderableSeries(wasmContext);
 * boxPlotSeries.dataSeries = dataSeries;
 * // append to the SciChartSurface
 * sciChartSurface.renderableSeries.add(boxPlotSeries);
 * ```
 *
 * ---
 * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-types/fast-box-plot-renderable-series/}
 */
export declare class FastBoxPlotRenderableSeries extends BaseRenderableSeries {
    readonly type = ESeriesType.BoxPlotSeries;
    private dataPointWidthModeProperty;
    private capProperty;
    private whiskersProperty;
    private medianLineProperty;
    private dataPointWidthProperty;
    private strokeDashArrayProperty;
    private fillProperty;
    private fillLinearGradientProperty;
    /**
     * Creates an instance of the {@link FastBoxPlotRenderableSeries}
     * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing
     * native methods and access to our WebGL2 WebAssembly Drawing Engine
     * @param options optional parameters of type {@link IFastBoxPlotRenderableSeriesOptions} applied when constructing the series type
     *
     * ---
     * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-types/fast-box-plot-renderable-series/}
     */
    constructor(webAssemblyContext: TSciChart, options?: IFastBoxPlotRenderableSeriesOptions);
    /** @inheritDoc */
    applyTheme(themeProvider: IThemeProvider): void;
    /**
     * Gets or sets the mode which determines how dataPointWidth is interpreted. Available values are {@link EDataPointWidthMode}.  Default Relative.
     */
    get dataPointWidthMode(): EDataPointWidthMode;
    set dataPointWidthMode(value: EDataPointWidthMode);
    /**
     * Gets or sets cap properties for {@link FastBoxPlotRenderableSeries}
     */
    get cap(): Required<TCapProperty>;
    set cap(value: TCapProperty);
    /**
     * Gets or sets whiskers properties for {@link FastBoxPlotRenderableSeries}
     */
    get whiskers(): Required<TStrokeProperties>;
    set whiskers(value: TStrokeProperties);
    /**
     * Gets or sets median line properties for {@link FastBoxPlotRenderableSeries}
     */
    get medianLine(): Required<TStrokeProperties>;
    set medianLine(value: TStrokeProperties);
    /**
     * The width of the box.
     * By default the value is treated as relative, valid values range from 0.0 - 1.0.
     * To specify if the value should be treated as relative, absolute, or based on range use {@link dataPointWidthMode}
     */
    get dataPointWidth(): number;
    set dataPointWidth(value: number);
    /**
     * The StrokeDashArray defines the stroke or dash pattern for the box.
     * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.
     */
    get strokeDashArray(): number[];
    set strokeDashArray(strokeDashArray: number[]);
    /**
     * The box fill as an HTML color code
     */
    get fill(): string;
    set fill(htmlColorCode: string);
    /**
     * Gets or sets the fill as a gradient brush
     */
    get fillLinearGradient(): GradientParams;
    set fillLinearGradient(gradientBrushParams: GradientParams);
    /**
     * Gets or sets the paletteProvider of Renderable Series
     * @remarks paletteProvider is not supported by {@link FastBoxPlotRenderableSeries}
     */
    get paletteProvider(): IPaletteProvider;
    set paletteProvider(paletteProvider: IPaletteProvider);
    /** @inheritDoc */
    delete(): void;
    /** @inheritDoc */
    getXRange(): NumberRange;
    /** @inheritDoc */
    getYRange(xVisibleRange: NumberRange, isXCategoryAxis?: boolean): NumberRange;
    /** @inheritDoc */
    toJSON(excludeData?: boolean): import("../../..").TSeriesDefinition;
    /** @inheritDoc */
    toPointSeries(rp?: ResamplingParams): IBoxPlotPointSeries;
    /** @inheritDoc */
    protected newHitTestProvider(): IHitTestProvider;
}
export {};
