import { Point } from "../../../../../Core/Point";
import type { Size } from "../../../../../types/Size";
import type { RenderPassData } from "../../../../Services/RenderPassData";
import { EPolarLabelMode } from "../../../Axis/Polar/types/PolarLabelMode";
import type { TDataLabel } from "../../DataLabels/BaseDataLabelProvider";
import type { IHeatmapDataLabelProviderOptions } from "../../DataLabels/HeatMapDataLabelProvider";
import { HeatMapDataLabelProvider } from "../../DataLabels/HeatMapDataLabelProvider";
export interface IPolarHeatmapDataLabelProviderOptions extends IHeatmapDataLabelProviderOptions {
    /**
     * Gets or sets polar label mode to use for calculating data label rotation. Default Horizontal
     * For a list of value, see {@link EPolarLabelMode}
     */
    polarLabelMode?: EPolarLabelMode;
}
export declare class PolarHeatMapDataLabelProvider extends HeatMapDataLabelProvider {
    private polarLabelModeProperty;
    constructor(options?: IPolarHeatmapDataLabelProviderOptions);
    /**
     * Gets or sets polar label mode to use for calculating data label rotation. Default Horizontal
     * For a list of value, see {@link EPolarLabelMode}
     */
    get polarLabelMode(): EPolarLabelMode;
    set polarLabelMode(value: EPolarLabelMode);
    shouldGenerate(textSize: Size, cellWidth: number, cellHeight: number): boolean;
    shouldSkipLabel(xIndex: number, yIndex: number, label: TDataLabel, cellWidth: number, cellHeight: number): boolean;
    private toCartesian;
    getPosition(xIndex: number, yIndex: number, xVal: number, yVal: number, textSize: Size, cellWidth: number, cellHeight: number, renderPassData: RenderPassData): {
        position: Point;
        rotationCenter: Point;
        rotationAngle: number;
    };
    protected get useRotation(): boolean;
}
