import { Point } from "../../../../Core/Point";
import { EDataLabelProviderType } from "../../../../types/DataLabelProviderType";
import type { TSRTextBounds } from "../../../../types/TSciChart";
import type { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import type { RenderPassData } from "../../../Services/RenderPassData";
import type { IDataLabelProviderOptions } from "./DataLabelProvider";
import { DataLabelProvider } from "./DataLabelProvider";
import type { DataLabelState } from "./DataLabelState";
export interface ILineSeriesDataLabelProviderOptions extends IDataLabelProviderOptions {
    /**
     * Sets whether text should be positioned above the line if it is going down, and below the line if it going up.
     * Default true.  When true this overrides horizontalAnchorPoint and verticalAnchorPoint to be left, bottom.
     */
    aboveBelow?: boolean;
}
export declare class LineSeriesDataLabelProvider extends DataLabelProvider {
    readonly type: EDataLabelProviderType;
    private yAdj;
    private aboveBelowProperty;
    constructor(options?: ILineSeriesDataLabelProviderOptions);
    /**
     * Gets or Sets whether text should be positioned above the line if it is going down, and below the line if it going up.
     * Default true.  When true this overrides horizontalAnchorPoint and verticalAnchorPoint to be left, bottom.
     */
    get aboveBelow(): boolean;
    set aboveBelow(value: boolean);
    generateDataLabels(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
    getPosition(state: DataLabelState, textBounds: TSRTextBounds): {
        position: Point;
        rotationCenter: Point;
        rotationAngle: number;
    };
    toJSON(): {
        type: EDataLabelProviderType;
        options: {
            style: import("../../../..").TDataLabelStyle;
            color: string;
        };
    };
}
