import type { ChartData } from "chart.js";
import type { TData, TDefaultChartFormatOptionsType } from "../../Core/Common.types";
export declare const CJS_DEFAULT_COLORS: string[];
/** Returns rgba string with the given opacity, e.g. "#FF0000" + 0.4 → "rgba(255,0,0,0.4)" */
export declare function hexToRgba(hex: string, alpha?: number): string;
export type TCJSChartType = "bar" | "horizontalBar" | "line" | "area" | "pie" | "doughnut" | "scatter" | "bubble" | "radar" | "polarArea";
/**
 * Transforms TData (the existing input format) into a Chart.js ChartData object.
 *
 * @param chartData     The raw chart data in the existing TData format.
 * @param chartType     Target Chart.js chart type.
 * @param formatOptions Current format options (used for opacity, marker config, etc.).
 * @param colorBank     Ordered color array derived from the active theme/palette in the host
 *                      application. Falls back to CJS_DEFAULT_COLORS when omitted.
 *
 * For cartesian charts (bar, line, area, radar) the output is:
 *   { labels: string[], datasets: ChartDataset[] }
 *
 * For circular charts (pie, doughnut, polarArea) each label becomes one segment.
 * The colorBank is used to assign one distinct color per segment so the palette
 * matches the host application's active theme.
 *
 * For scatter/bubble the data points are { x, y } / { x, y, r } objects.
 */
export declare function transformToChartJSData(chartData: TData, chartType: TCJSChartType, formatOptions: TDefaultChartFormatOptionsType, colorBank?: string[]): ChartData;
/**
 * Produces the same cartesian structure as buildCartesianData but converts all
 * values to percentages of the column total so that Chart.js renders a 100%
 * stacked chart when scales are configured with stacked:true and max:100.
 */
export declare function transformToNormalizedChartJSData(chartData: TData, chartType: "bar" | "horizontalBar" | "line" | "area", formatOptions: TDefaultChartFormatOptionsType, colorBank?: string[]): ChartData;
