import { Rect } from "../../../Core/Rect";
import type { Thickness } from "../../../Core/Thickness";
import { EHorizontalAlignment, ELabelPlacement, EVerticalAlignment } from "../../../types/LabelPlacement";
import type { IPen2D } from "../../Drawing/IPen2D";
import type { WebGlRenderContext2D } from "../../Drawing/WebGlRenderContext2D";
import type { AxisBase2D } from "../Axis/AxisBase2D";
import type { TTextStyle } from "../Axis/AxisCore";
export declare const drawModifiersAxisLabel: (currentAxis: AxisBase2D, renderContext: WebGlRenderContext2D, labelCoord: number, fill: string, stroke: string, padding: Thickness, cornerRadius: number) => Rect;
/**
 * Function to draw Vertical or Horizontal Line annotations with labels
 */
export declare const drawLineAnnotation: (currentAxis: AxisBase2D, renderContext: WebGlRenderContext2D, labelPlacement: ELabelPlacement, displayValue: string, x1Coord: number, x2Coord: number, y1Coord: number, y2Coord: number, textStyle: TTextStyle, fill: string, strokePen: IPen2D, viewRect: Rect, showLabel: boolean, opacity: number, horizontalAlignment?: EHorizontalAlignment, verticalAlignment?: EVerticalAlignment) => Rect;
export declare const drawAxisMarkerAnnotation: (currentAxis: AxisBase2D, renderContext: WebGlRenderContext2D, displayValue: string, markerCoordinate: number, x1Coord: number, y1Coord: number, textStyle: TTextStyle, fill: string, opacity: number, image: HTMLImageElement, imageWidth: number, imageHeight: number) => {
    xPosition: number;
    yPosition: number;
    textureWidth: number;
    textureHeight: number;
};
/**
 * Calculates coordinates of the annotation label.
 * The coordinates are defined as an absolute position on the whole SciChartSurface.
 */
export declare const getLabelCoordinates: (currentAxis: AxisBase2D, labelPlacement: ELabelPlacement, x1Coord: number, x2Coord: number, y1Coord: number, y2Coord: number, textureHeight: number, textureWidth: number, horizontalAlignment?: EHorizontalAlignment, verticalAlignment?: EVerticalAlignment) => {
    xPosition: number;
    yPosition: number;
};
/**
 * Calculates annotation line coordinates accordingly to axis alignment and label placement.
 * Returns coordinates relative to seriesViewRect.
 */
export declare const getLineCoordinates: (x1Coord: number, y1Coord: number, x2Coord: number, y2Coord: number, labelHeight: number, labelWidth: number, labelPlacement: ELabelPlacement, currentAxis: AxisBase2D) => {
    x1LineCoord: number;
    y1LineCoord: number;
    x2LineCoord: number;
    y2LineCoord: number;
};
export declare const getLabelValue: (currentAxis: AxisBase2D, labelCoord: number) => string;
