import { NumberRange } from "../../../Core/NumberRange";
import { TSciChart } from "../../../types/TSciChart";
import { WebGlRenderContext2D } from "../../Drawing/WebGlRenderContext2D";
import { RenderPassData } from "../../Services/RenderPassData";
import { SciChartSurface } from "../SciChartSurface";
import { BaseStackedCollection, IBaseStackedCollectionOptions } from "./BaseStackedCollection";
import { BaseStackedRenderableSeries } from "./BaseStackedRenderableSeries";
/**
 * Options for {@link StackedXyCollection} and its subclasses (e.g. {@link StackedMountainCollection})
 */
export interface IStackedXyCollectionOptions extends IBaseStackedCollectionOptions {
    /**
     * When true (default), positive values stack upward from the zero line and negative values stack downward independently.
     * When false, all values accumulate continuously from the previous series top, preserving legacy behaviour.
     */
    separatePositiveNegativeStacks?: boolean;
}
export declare abstract class StackedXyCollection<T extends BaseStackedRenderableSeries> extends BaseStackedCollection<T> {
    private separatePositiveNegativeStacksProperty;
    /**
     * Creates an instance of the {@link StackedMountainCollection}
     * @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 IStackedXyCollectionOptions} to configure the series
     */
    constructor(webAssemblyContext: TSciChart, options?: IStackedXyCollectionOptions);
    /** @inheritDoc */
    updateAccumulatedVectors(): void;
    /** @inheritDoc */
    draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
    /** @inheritDoc */
    getXRange(): NumberRange;
    /** @inheritDoc */
    getYRange(xVisibleRange: NumberRange, isXCategoryAxis: boolean): NumberRange;
    /** @inheritDoc */
    onAttach(scs: SciChartSurface): void;
    /** @inheritDoc */
    onDetach(): void;
    /** @inheritDoc */
    notifyPropertyChanged(propertyName: string): void;
    /**
     * When true (default), positive values stack upward from the zero line and negative values stack downward independently.
     * When false, all values accumulate continuously from the previous series top, preserving legacy behaviour.
     */
    get separatePositiveNegativeStacks(): boolean;
    /**
     * When true (default), positive values stack upward from the zero line and negative values stack downward independently.
     * When false, all values accumulate continuously from the previous series top, preserving legacy behaviour.
     */
    set separatePositiveNegativeStacks(value: boolean);
    /** @inheritDoc */
    hasDataSeriesValues(): boolean;
    private detachChildSeries;
    private attachChildSeries;
    private checkXValuesCorrect;
    /**
     * @param numberOfElements - number of element expected is used for performance to reserve memory
     */
    private clearAccumulatedVectors;
    private getLastVisibleSeries;
}
