/*
 * 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 { CanvasBoundsContainer } from '../../../canvas/canvas-bounds-container';
import { YAxisConfig } from '../../../chart.config';
import { Bounds } from '../../../model/bounds.model';
import { CanvasModel } from '../../../model/canvas.model';
import { ChartBaseElement } from '../../../model/chart-base-element';
import { DataSeriesModel } from '../../../model/data-series.model';
import { ScaleModel } from '../../../model/scale.model';
import { HighLowProvider } from '../../../model/scaling/auto-scale.model';
import { Pixel, Price, Unit } from '../../../model/scaling/viewport.model';
import { ChartBaseModel } from '../../chart/chart-base.model';
import { DragNDropYComponent } from '../../dran-n-drop_helper/drag-n-drop-y.component';
import { YAxisComponent } from '../../y_axis/y-axis.component';
import { PaneHitTestController } from '../pane-hit-test.controller';
import { PaneComponent, YExtentFormatters } from '../pane.component';
export interface YExtentCreationOptions {
    scale: ScaleModel;
    order: number;
    useDefaultHighLow: boolean;
    cursor: string;
    paneFormatters: YExtentFormatters;
    increment: number | null;
    initialYAxisState: YAxisConfig;
    inverse: boolean;
    lockToPriceRatio: boolean;
}
export declare class YExtentComponent extends ChartBaseElement {
    config: YAxisConfig;
    paneUUID: string;
    idx: number;
    paneComponent: PaneComponent;
    private chartBaseModel;
    private canvasBoundsContainer;
    private hitTestController;
    dynamicObjectsCanvasModel: CanvasModel;
    readonly scale: ScaleModel;
    readonly dragNDrop: DragNDropYComponent;
    dataSeries: Set<DataSeriesModel>;
    formatters: YExtentFormatters;
    yAxis: YAxisComponent;
    mainDataSeries?: DataSeriesModel;
    constructor(config: YAxisConfig, paneUUID: string, idx: number, paneComponent: PaneComponent, chartBaseModel: ChartBaseModel<'candle'>, canvasBoundsContainer: CanvasBoundsContainer, hitTestController: PaneHitTestController, dynamicObjectsCanvasModel: CanvasModel, scale: ScaleModel, createYAxisComponent: (formatter: (value: number) => string, dataSeriesProvider: () => DataSeriesModel | undefined) => YAxisComponent, dragNDrop: DragNDropYComponent, dataSeries?: Set<DataSeriesModel>, formatters?: YExtentFormatters);
    protected doDeactivate(): void;
    getYAxisBounds: () => Bounds;
    yAxisHT: import("../../../canvas/canvas-bounds-container").HitBoundsTest;
    /**
     * Returns the bounds of the scale model.
     * @returns {Bounds} The bounds of the scale model.
     */
    getBounds(): Bounds;
    getBaseline(): number;
    private toVisualPoints;
    /**
     * Creates a new DataSeriesModel object.
     * @returns {DataSeriesModel} - The newly created DataSeriesModel object.
     */
    createDataSeries(): DataSeriesModel;
    /**
     * Adds a new data series to the chart.
     * @param {DataSeriesModel} series - The data series to be added.
     * @returns {void}
     */
    addDataSeries(series: DataSeriesModel): void;
    toY: (value: Price) => Pixel;
    /**
     * Removes a data series from the chart.
     *
     * @param {DataSeriesModel} series - The data series to be removed.
     * @returns {void}
     */
    removeDataSeries(series: DataSeriesModel): void;
    valueFormatter: (value: Unit, dataSeries?: DataSeriesModel) => string;
    get regularFormatter(): (value: number, precision?: number) => string;
    /**
     * Sets the pane value formatters for the current instance.
     * @param {YExtentFormatters} formatters - The pane value formatters to be set.
     */
    setValueFormatters(formatters: YExtentFormatters): void;
    /**
     * Returns the regular value from Y coordinate.
     * @param {number} y - The Y coordinate.
     * @returns {number} - The regular value.
     */
    regularValueFromY(y: number): number;
}
export declare const createDefaultYExtentHighLowProvider: (extent: YExtentComponent) => HighLowProvider;
