import { Point } from "../../../../Core/Point";
import { EDataLabelProviderType } from "../../../../types/DataLabelProviderType";
import type { TDataLabelStyle } from "../../../../types/TDataLabelStyle";
import type { EHorizontalTextPosition, EVerticalTextPosition } from "../../../../types/TextPosition";
import type { SCRTDoubleVector, TSRTextBounds } from "../../../../types/TSciChart";
import type { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import type { RenderPassData } from "../../../Services/RenderPassData";
import type { IRenderableSeries } from "../IRenderableSeries";
import type { IDataLabelProviderOptions } from "./DataLabelProvider";
import { DataLabelProvider } from "./DataLabelProvider";
import type { DataLabelState } from "./DataLabelState";
import { RectangleDataLabelState } from "./RectangleDataLabelState";
export interface IRectangleSeriesDataLabelProviderOptions extends IDataLabelProviderOptions {
    /** Not used for FastRectangleRenderableSeries */
    horizontalTextPosition?: EHorizontalTextPosition;
    /** Not used for FastRectangleRenderableSeries */
    verticalTextPosition?: EVerticalTextPosition;
}
export declare class RectangleSeriesDataLabelProvider extends DataLabelProvider {
    readonly type: EDataLabelProviderType;
    constructor(options?: IRectangleSeriesDataLabelProviderOptions);
    /** @inheritDoc */
    getDataLabelState(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData, style: TDataLabelStyle, color: string, yValues: SCRTDoubleVector, parentSeries: IRenderableSeries): DataLabelState;
    /** @inheritDoc */
    getPosition(state: RectangleDataLabelState, textBounds: TSRTextBounds): {
        position: Point;
        rotationCenter: Point;
        rotationAngle: number;
    };
    /** @inheritDoc */
    toJSON(): {
        type: EDataLabelProviderType;
        options: {
            style: TDataLabelStyle;
            color: string;
        };
    };
}
