/*
 * Copyright (C) 2019 - 2026 Devexperts Solutions IE Limited
 * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
 * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */
import { YAxisConfig, FullChartColors, YAxisLabelAppearanceType, YAxisLabelMode } from '../../chart.config';
import { Bounds } from '../../model/bounds.model';
export interface YAxisLabelDrawProps {
    ctx: CanvasRenderingContext2D;
    bounds: Bounds;
    text: string;
    centralY: number;
    lineY?: number;
    config: YAxisLabelDrawConfig;
    subGroupId?: number;
}
export interface YAxisLabelDrawConfig {
    textFont?: string;
    textColor?: string;
    bgColor: string;
    highlightColor?: string;
    descColor?: string;
    lineColor?: string;
    paddingTop?: number;
    paddingBottom?: number;
    paddingEnd?: number;
    paddingStart?: number;
    rounded?: boolean;
    lineDash?: Array<number>;
    /** When set (e.g. `round` with short dash gaps), strokes render as dotted segments. */
    lineCap?: CanvasLineCap;
    /** Overrides chart-wide `components.yAxis.labels.settings.drawings.mode` for this label (e.g. drawings). */
    yAxisLabelMode?: YAxisLabelMode;
    /** Overrides chart-wide `components.yAxis.labels.settings.drawings.type` for this label (e.g. drawings). */
    yAxisLabelType?: YAxisLabelAppearanceType;
}
export declare const DEFAULT_PRICE_LABEL_PADDING = 4;
/**
 * Draws badge label on Y axis with provided parameters.
 * @param ctx - canvas 2D context to draw on
 * @param bounds - bounds of Y axis
 * @param text - text to draw
 * @param centralY - y
 * @param config - label styles config
 * @param yAxisState
 * @param yAxisColors
 * @param checkBoundaries
 */
export declare function drawBadgeLabel(ctx: CanvasRenderingContext2D, bounds: Bounds, text: string, centralY: number, config: YAxisLabelDrawConfig, yAxisState: YAxisConfig, yAxisColors: FullChartColors['yAxis'], checkBoundaries?: boolean): void;
/**
 * Draws rectangle label on Y axis with provided parameters.
 * @param ctx - canvas 2D context to draw on
 * @param bounds - bounds of Y axis
 * @param text - text to draw
 * @param centralY - y
 * @param config - label styles config
 * @param yAxisState
 * @param yAxisColors
 * @param checkBoundaries
 */
export declare function drawRectLabel(ctx: CanvasRenderingContext2D, bounds: Bounds, text: string, centralY: number, config: YAxisLabelDrawConfig, yAxisState: YAxisConfig, yAxisColors: FullChartColors['yAxis'], checkBoundaries?: boolean): void;
/**
 * Draws rectangle label on Y axis with provided parameters but with transparent background.
 * @param ctx - canvas 2D context to draw on
 * @param bounds - bounds of Y axis
 * @param text - text to draw
 * @param centralY - y
 * @param config - label styles config
 * @param yAxisState
 * @param yAxisColors
 * @param checkBoundaries
 */
export declare function drawPlainLabel(ctx: CanvasRenderingContext2D, bounds: Bounds, text: string, centralY: number, config: YAxisLabelDrawConfig, yAxisState: YAxisConfig, yAxisColors: FullChartColors['yAxis'], checkBoundaries?: boolean): void;
/**
 * Offset from the center of label to the top/bottom.
 *
 * @param font Label font
 * @param ctx Drawing context
 * @param paddingTop - extra padding from top
 */
export declare function getLabelYOffset(font: string, ctx: CanvasRenderingContext2D, paddingTop?: number): number;
/**
 * Checks if label fits in chart scale boundaries
 * @param centralY
 * @param bounds
 * @param labelBoxHeight
 * returns true if label fits
 */
export declare function checkLabelInBoundaries(centralY: number, bounds: Bounds, labelBoxHeight: number): boolean;
