import { NumberRange } from "../../../../Core/NumberRange";
import { SCRTDoubleVector, TSciChart } from "../../../../types/TSciChart";
import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import { IPointSeries } from "../../../Model/PointSeries/IPointSeries";
import { CoordinateCalculatorBase } from "../../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
import { RenderPassData } from "../../../Services/RenderPassData";
import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
import { StackedColumnRenderableSeries } from "../StackedColumnRenderableSeries";
import { BaseSeriesDrawingProvider } from "./BaseSeriesDrawingProvider";
import { IColumnSeriesDrawingProviderProperties } from "./ColumnSeriesDrawingProvider";
export declare class StackedColumnRenderPassData extends RenderPassData {
    columnWidth: number;
    stackedGroupCount: number;
    groupIndex: number;
    spacing: number;
    constructor(indexRange: NumberRange | undefined, getxCoordinateCalculator: () => CoordinateCalculatorBase, getyCoordinateCalculator: () => CoordinateCalculatorBase, isVerticalChart: boolean, columnWidth: number, stackedGroupCount: number, groupIndex: number, spacing: number, pointSeries?: IPointSeries, resamplingHash?: number);
}
/**
 * Used internally - a drawing provider performs drawing for a {@link StackedColumnRenderableSeries} using
 * our WebAssembly WebGL rendering engine
 */
export declare class StackedColumnSeriesDrawingProvider extends BaseSeriesDrawingProvider<StackedColumnRenderableSeries> {
    private nativeDrawingProvider;
    private strokePenCache;
    private strokePenFillColoredCache;
    private fillBrushCache;
    private args;
    /**
     * Creates an instance of the {@link StackedColumnSeriesDrawingProvider}
     * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
     * access to our WebGL2 Engine and WebAssembly numerical methods
     * @param parentSeries the parent {@link StackedColumnRenderableSeries} which this drawing provider is attached to
     */
    constructor(webAssemblyContext: TSciChart, parentSeries: StackedColumnRenderableSeries, ySelector?: (ps: IPointSeries) => SCRTDoubleVector, xSelector?: (ps: IPointSeries) => SCRTDoubleVector);
    /**
     * @inheritDoc
     */
    onAttachSeries(): void;
    /**
     * @inheritDoc
     */
    delete(): void;
    getProperties(parentSeries: StackedColumnRenderableSeries): IColumnSeriesDrawingProviderProperties;
    /**
     * @inheritDoc
     */
    draw(renderContext: WebGlRenderContext2D, renderPassData: StackedColumnRenderPassData): void;
    /**
     * @inheritDoc
     */
    onDpiChanged(args: TDpiChangedEventArgs): void;
    /**
     * @inheritDoc
     */
    onSeriesPropertyChange(propertyName: string): void;
    private createBrush;
}
