import type { GradientParams } from "../../../../Core/GradientParams";
import type { NumberRange } from "../../../../Core/NumberRange";
import { EColumnMode, EColumnYMode } from "../../../../types/ColumnMode";
import { EDataPointWidthMode } from "../../../../types/DataPointWidthMode";
import { ESeriesType } from "../../../../types/SeriesType";
import type { TSciChart } from "../../../../types/TSciChart";
import type { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import type { IPointSeries } from "../../../Model/PointSeries/IPointSeries";
import type { CoordinateCalculatorBase } from "../../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
import type { ResamplingParams } from "../../../Numerics/Resamplers/ResamplingParams";
import type { RenderPassData } from "../../../Services/RenderPassData";
import type { IThemeProvider } from "../../../Themes/IThemeProvider";
import type { SciChartSurface } from "../../SciChartSurface";
import type { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
import type { BaseStackedCollection } from "../BaseStackedCollection";
import type { IBasedStackedRenderableSeriesOptions } from "../BaseStackedRenderableSeries";
import { BaseStackedRenderableSeries } from "../BaseStackedRenderableSeries";
import type { IRectangleRenderableSeries } from "../FastRectangleRenderableSeries";
import type { IHitTestProvider } from "../HitTest/IHitTestProvider";
import type { IBaseRenderableSeriesOptions } from "../IBaseRenderableSeriesOptions";
import type { ICustomTextureOptions } from "../../../Drawing/BrushCache";
export interface IPolarStackedColumnRenderableSeriesOptions extends IBasedStackedRenderableSeriesOptions {
    /**
     * The column stroke as an HTML color code
     */
    stroke?: string;
    /**
     * The column stroke thickness
     */
    strokeThickness?: number;
    /**
     * The column fill as an HTML color code
     */
    fill?: string;
    /**
     * Gets or sets the fill as a gradient brush
     */
    fillLinearGradient?: GradientParams;
    /**
     * This determines how x values and optional x1 values are interpreted for Polar chart. Available values are {@link EColumnMode}. Default Mid.
     */
    columnXMode?: EColumnMode;
    /**
     * Not supported property for PolarColumnRenderableSeries
     */
    columnYMode?: EColumnYMode;
    /**
     * Gets or sets the mode which determines how dataPointWidth in X direction is interpreted. Available values are {@link EDataPointWidthMode}.  Default Relative.
     */
    dataPointWidthMode?: EDataPointWidthMode;
    /** Options that creates a custom texture brush */
    customTextureOptions?: ICustomTextureOptions;
}
/**
 * Defines a polar stacked column-series or polar stacked column chart type in the SciChart's High Performance Real-time
 * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}, which needs to be paired within a
 * {@link PolarStackedColumnCollection | Collection} to function correctly.
 *
 * ---
 * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-types/polar-stacked-column-renderable-series/}
 */
export declare class PolarStackedColumnRenderableSeries extends BaseStackedRenderableSeries implements IRectangleRenderableSeries {
    readonly type = ESeriesType.PolarStackedColumnSeries;
    readonly isPolar: boolean;
    private fillProperty;
    private fillLinearGradientProperty;
    private polarColumnXModeProperty;
    private polarColumnYModeProperty;
    private dataPointWidthProperty;
    private dataPointWidthModeProperty;
    private customTextureOptionsProperty;
    /**
     * Creates an instance of the {@link PolarStackedColumnRenderableSeries}
     * @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 IPolarColumnRenderableSeriesOptions} applied when constructing the series type
     *
     * ---
     * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-types/polar-stacked-column-renderable-series/}
     */
    constructor(webAssemblyContext: TSciChart, options?: IPolarStackedColumnRenderableSeriesOptions);
    protected addDrawingProviders(webAssemblyContext: TSciChart, options?: IBaseRenderableSeriesOptions): void;
    /**
     * Gets or Sets how the x values and optional x1 values are interpreted
     */
    get columnXMode(): EColumnMode;
    set columnXMode(value: EColumnMode);
    /**
     * Gets or sets the mode which determines how dataPointWidth in X direction is interpreted. Available values are {@link EDataPointWidthMode}.  Default Range.
     */
    get dataPointWidthMode(): EDataPointWidthMode;
    set dataPointWidthMode(value: EDataPointWidthMode);
    get columnYMode(): EColumnYMode;
    /**
     * Setting columnYMode is not supported for PolarColumnRenderableSeries
     */
    set columnYMode(value: EColumnYMode);
    /**
     * Gets or sets the Zero-line Y, the Y-value for the base of the columns. Default is 0
     */
    get defaultY1(): number;
    /**
     * Gets or sets the Zero-line Y, the Y-value for the base of the columns. Default is 0
     */
    set defaultY1(zeroLineY: number);
    /**
     * Gets or sets the width of columns as a fraction of available space. Valid values range from 0.0 - 1.0
     */
    get dataPointWidth(): number;
    /**
     * Gets or sets the width of columns as a fraction of available space. Valid values range from 0.0 - 1.0
     */
    set dataPointWidth(dataPointWidth: number);
    /**
     * Gets or sets the fill as a gradient brush
     */
    get fillLinearGradient(): GradientParams;
    /**
     * Gets or sets the fill as a gradient brush
     */
    set fillLinearGradient(gradientBrushParams: GradientParams);
    /**
     * Gets or sets options to use a custom texture brush
     */
    get customTextureOptions(): ICustomTextureOptions;
    /**
     * Gets or sets options to use a custom texture brush
     */
    set customTextureOptions(customTextureOptions: ICustomTextureOptions);
    /**
     * Called internally when the {@link PolarStackedColumnRenderableSeries} is attached to a parent {@link PolarStackedColumnCollection}
     * @param parentCollection the parent {@link BaseStackedCollection}
     * @param getParentSurfaceFn function to get the parent {@link SciChartSurface}
     * @param notifyPropertyChangedFn function to notify property has changed
     */
    onAttachToParentCollection(parentCollection: BaseStackedCollection<BaseStackedRenderableSeries>, getParentSurfaceFn: () => SciChartSurface, notifyPropertyChangedFn: (propertyName: string) => void): void;
    /** @inheritDoc */
    onAttach(scs: SciChartSurface): void;
    /** @inheritDoc */
    onDetach(): void;
    /** @inheritDoc */
    draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
    /**
     * @inheritDoc
     */
    onDpiChanged(args: TDpiChangedEventArgs): void;
    /**
     * Gets or sets the fill brush of the column as an HTML color code
     */
    get fill(): string;
    /**
     * Gets or sets the fill brush of the column as an HTML color code
     */
    set fill(fill: string);
    /**
     * Gets or sets the fill color for when Y1 is less than Y as an HTML Color code
     */
    set fillY1(fillY1: string);
    /**
     * Gets the RenderPassData instance used for this render pass
     */
    getCurrentRenderPassData(): RenderPassData;
    toJSON(excludeData?: boolean): import("../../../..").TSeriesDefinition;
    delete(): void;
    /** @inheritDoc */
    toPointSeries(resamplingParams?: ResamplingParams): IPointSeries;
    /** @inheritDoc */
    hasStrokePaletteProvider(): boolean;
    /** @inheritDoc */
    hasFillPaletteProvider(): boolean;
    /** @inheritDoc */
    hasPointMarkerPaletteProvider(): boolean;
    /** @inheritDoc */
    resolveAutoColors(index: number, maxSeries: number, theme: IThemeProvider): void;
    /**
     * @inheritDoc
     */
    getXRange(): NumberRange;
    getDataPointWidth(xCoordCalc: CoordinateCalculatorBase, widthFraction: number): number;
    /** @inheritDoc */
    protected newHitTestProvider(): IHitTestProvider;
}
