import * as d3 from "d3";
import { TChartMargins, TDefaultChartFormatOptionsType } from "../Core/Common.types";
export declare function applyPlotAreaRangeFilter<T>(labelsList: T[], formatOptions: TDefaultChartFormatOptionsType, getMeasure: (item: T) => number): T[];
/**
 * Calculates margins for Bubble and Scatter charts based on various parameters.
 * @param width // Width of the chart container.
 * @param height // Height of the chart container.
 * @param maxMeasure // Maximum measure value.
 * @param formatOptions // Formatting options for the chart.
 * @param maxDimension // Maximum dimension value.
 * @param maxLegendDimensions // Maximum dimensions for the legend.
 * @returns /** An object containing calculated margins and other related dimensions.
 */
export declare function marginCalculationForBubbleScatter(width: number, height: number, maxMeasure: number, formatOptions: TDefaultChartFormatOptionsType, maxDimension: number, maxLegendDimensions: number[]): {
    margins: TChartMargins;
    yLabel: number;
    xLabel: number;
    yTitle: number;
    xTitle: number;
    chartTitleHeight: number;
    legendMargin: number;
    innerHeight: number;
    innerWidth: number;
};
export declare function customYscaleLabelFormatting(formatOptions: TDefaultChartFormatOptionsType, YminLeft: number, YmaxLeft: number): {
    longestMeasure: number;
    customYaxisIntervalValue: number;
    customYaxisMaxValue: number;
    customYaxisMinValue: number;
};
export declare function customXscaleLabelFormatting(formatOptions: TDefaultChartFormatOptionsType, xMinLeft: number, xMaxLeft: number): {
    longestDimension: number;
    customXaxisIntervalValue: number;
    customXaxisMaxValue: number;
    customXaxisMinValue: number;
};
/**
 * Sets the X-axis title on the SVG chart, adjusting visibility, positioning, and styling based on format options and chart type.
 *
 * @param {TDefaultChartFormatOptionsType} formatOptions - Chart format options including axis title settings and visibility.
 * @param {boolean} barChart - Flag indicating if the chart is a bar chart.
 * @param {any} svg - D3 selection of the SVG element where the X-axis title will be appended.
 * @param {TMargin} margin - Margin object containing top, left, right, and bottom margins.
 * @param {number} xLabel - Height offset for the X-axis label.
 * @param {number} height - Total height of the SVG/chart container.
 * @param {number} xTitle - Height allocated for the X-axis title element.
 * @param {string} chartType - The type of chart (e.g., "bar", "line", etc.).
 * @param {number} yLabel - Y-axis label offset (used for positioning in some cases).
 * @param {number} innerWidth - Inner width of the static SVG container.
 * @param {number} innerHeight - Height of the inner chart area (excluding margins).
 *
 * @returns {any} The modified SVG selection with the appended X-axis title element.
 */
export declare function setXaxistitle(formatOptions: TDefaultChartFormatOptionsType, barChart: boolean, svg: any, margin: TChartMargins, xLabel: number, height: number, xTitle: number, chartType: string, yLabel: number, innerWidth: number, innerHeight: number): void;
/**
 * Adds a Y-axis title to the SVG chart, handling visibility, positioning, rotation, and styling based on format options.
 *
 * @param {number} innerHeight - The height of the inner chart area (excluding margins).
 * @param {TDefaultChartFormatOptionsType} formatOptions - Chart formatting options, including Y-axis title settings.
 * @param {number} dataTableHeight - Height of any data table below the chart, used to adjust positioning.
 * @param {boolean} barChart - Whether the chart is a bar chart.
 * @param {any} svg - D3 selection of the SVG element where the Y-axis title will be appended.
 * @param {TMargin} margin - Margins around the chart.
 * @param {number} yTitle - Height allocated for the Y-axis title element.
 * @param {number} yLabel - Offset for the Y-axis label, used for positioning.
 *
 * @returns {any} The SVG selection with the appended Y-axis title.
 */
export declare function yAxistitle(innerHeight: number, formatOptions: TDefaultChartFormatOptionsType, dataTableHeight: number, barChart: boolean, svg: any, margin: TChartMargins, yTitle: number, yLabel: number): any;
/**
* Generates an array of Y-axis labels based on provided min, max values,
* chart dimensions, format options, and optional custom min/max values.
*
* @param {number} Ymax - The maximum Y value from data or chart.
* @param {number} Ymin - The minimum Y value from data or chart.
* @param {number} innerHeight - The inner height of the chart area in pixels.
* @param {TDefaultChartFormatOptionsType} formatOptions - Configuration options for formatting the axis labels.
* @param {TChartJSON} chartJSON - Chart metadata including Y axis min/max values.
* @param {number} customYaxisMinValue - Optional custom minimum Y-axis value.
* @param {number} customYaxisMaxValue - Optional custom maximum Y-axis value.
*
* @returns {{ yAxisLabelArray: number[], customTickValue?: number }} Object containing the array of Y-axis labels and optionally the computed custom tick count.
*/
export declare function responsiveYaxisLabel(Ymax: number, Ymin: number, innerHeight: number, formatOptions: TDefaultChartFormatOptionsType, customYaxisMinValue: number, customYaxisMaxValue: number): {
    yAxisLabelArray: any[];
    customTickValue: any;
};
export declare function responsiveXaxisLabelForNumericValue(xMax: number, xMin: number, innerWidth: number, formatOptions: TDefaultChartFormatOptionsType, customXaxisMinValue: number, customXaxisMaxValue: number, innerHeight: number, barChart?: boolean): {
    xAxisLabelArray: any[];
    customTickValue: any;
    autoLabelFlag: boolean;
};
export declare function initYaxis(gTag: any, formatOptions: TDefaultChartFormatOptionsType, dataTableHeight: number, yLabel: number, yAxisLeft: any, innerHeight: number): void;
export declare function initXaxis(gTag: any, formatOptions: TDefaultChartFormatOptionsType, dataTableHeight: number, xLabel: number, xAxis: any, innerHeight: number, innerWidth: number, margins: TChartMargins, yScale: any): void;
export declare function pieFamilyAnnotation(d3Annotation: any, chartData: any, formatOptions: any, getPiePosition: any, chartType: any, width: any, height: any, svg: any, radius: any, isReportEditable: any, onDataLabelCoordinatesChange: any): void;
export declare const setnumberOfBubbles: (svg: d3.Selection<SVGSVGElement, unknown, null, undefined>, legendPosition: string, chartFormatOptions: TDefaultChartFormatOptionsType, height: number, width: number, margins: TChartMargins, innnerHeight: number, xTitleHeight: number, XLabelHeight: number, bubbleCount: number) => void;
