import { THeightColorSettings } from "../../../../types/HeightColorSettings";
import { SCRTDoubleVector, TSciChart } from "../../../../types/TSciChart";
import { ICustomTextureOptions } from "../../../Drawing/BrushCache";
import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import { IFillPaletteProvider } from "../../../Model/IPaletteProvider";
import { IPointSeries } from "../../../Model/PointSeries/IPointSeries";
import { RenderPassData } from "../../../Services/RenderPassData";
import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
import { BaseSeriesDrawingProvider } from "./BaseSeriesDrawingProvider";
import { IRenderableSeries, NumberRange, XyzDataSeries } from "../../../..";
import { EHeightSeriesMode } from "../../../../types/HeightSeriesMode";
export interface IHeightRenderableSeries extends IRenderableSeries {
    /**
     * The height fill as an HTML color code
     */
    fill?: string;
    /**
     * The scale value of the for heights.  Make this negative to draw in the other direction
     */
    zMultiplier?: number;
    /** A maximum and minimum for the heights.  Defaults are 0 and MAX_VALUE */
    zLimits?: NumberRange;
    /** Whether to normalise the z values according to the zLimits before appling the zMultiplier.  Default false*/
    normalise?: boolean;
    /** The flag to reverse height, Max value draws Min height and Min value draws Max height */
    isInverseHeight?: boolean;
    colorSettings?: THeightColorSettings;
    customTextureOptions?: ICustomTextureOptions;
    heightsForColoringDataSeries?: XyzDataSeries;
    heightMode?: EHeightSeriesMode;
    strokeDashArray?: number[];
    getHeightsForColoring: (isResampled: boolean) => SCRTDoubleVector;
    paletteProvider: IFillPaletteProvider;
}
/**
 * Used internally - a drawing provider performs drawing for a {@link HeightRenderableSeries} using
 * our WebAssembly WebGL rendering engine
 */
export declare class HeightSeriesDrawingProvider extends BaseSeriesDrawingProvider<IHeightRenderableSeries> {
    private nativeDrawingProvider;
    private linesPenCache;
    private fillBrushCache;
    private zSelector;
    private args;
    private colorSettings;
    /**
     * Creates an instance of the {@link HeightSeriesDrawingProvider}
     * @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 IHeightRenderableSeries} which this drawing provider is attached to
     */
    constructor(webAssemblyContext: TSciChart, parentSeries: IHeightRenderableSeries, ySelector?: (ps: IPointSeries) => SCRTDoubleVector, zSelector?: (ps: IPointSeries) => SCRTDoubleVector);
    /**
     * @inheritDoc
     */
    onAttachSeries(): void;
    /**
     * @inheritDoc
     */
    onDetachSeries(): void;
    /**
     * @inheritDoc
     */
    delete(): void;
    /**
     * @inheritDoc
     */
    draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
    /**
     * @inheritDoc
     */
    onDpiChanged(args: TDpiChangedEventArgs): void;
    /**
     * @inheritDoc
     */
    onSeriesPropertyChange(propertyName: string): void;
}
