import type { Chart, ChartSeries, DataLabels } from "./types.js"; import type { ChartFont } from "./schema/ChartFont.js"; import type { Rect } from "./chart.js"; import type { ChartStyleBorder } from "./schema/ChartStyleBorder.js"; import type { ChartStyleFont } from "./schema/ChartStyleFont.js"; export declare let AXIS_FONT_SIZE: number; export declare let LEGEND_FONT_SIZE: number; export declare let TITLE_FONT_SIZE: number; export declare let AXIS_TITLE_FONT_SIZE: number; export declare let DATA_LABEL_FONT_SIZE: number; export declare let CHART_FONT_SCALE: number; export declare function chartFontScale(rect: Rect): number; export declare function applyChartFontScale(rect: Rect): number; export type ResolvedTitleFont = { css: string; size: number; color?: string; }; export declare function resolveTitleFont(font: ChartFont | undefined, baseSizePx: number): ResolvedTitleFont; export declare function resolveAxisLabelFont(font: ChartFont | undefined): ResolvedTitleFont; export declare function drawStyleBox(ctx: CanvasRenderingContext2D, rect: Rect, fill?: string, border?: ChartStyleBorder): void; export declare function chartFontCss(font: ChartStyleFont | undefined, fallbackSize: number): string; export declare function axisStraddlesZero(minV: number, maxV: number): boolean; export interface ZeroAxisMetrics { straddlesZero: boolean; zeroFrac: number; zeroY: number; zeroX: number; } export declare function zeroAxisMetrics(inner: Rect, minV: number, maxV: number): ZeroAxisMetrics; export declare function paintZeroBaseline(ctx: CanvasRenderingContext2D, inner: Rect, minV: number, maxV: number): void; export declare function isZeroTickInside(t: number, minV: number, maxV: number): boolean; export interface BarSlotMetrics { barW: number; firstBarLeftOffset: number; barShift: number; } export declare function computeBarSlotMetrics(slotW: number, seriesCount: number, stacked: boolean, gapWidthPct: number | undefined, overlapPct: number | undefined): BarSlotMetrics; export declare function valueRange(rows: number[][]): { minV: number; maxV: number; }; export declare function buildStackedRows(series: ChartSeries[], categoryCount: number, percent: boolean): number[][]; export declare function categoryAxisExtraRows(chart: Chart): string[][]; export declare function categoryAxisExtraHeight(chart: Chart): number; export declare function catAxisRotation(chart: Chart): number; export declare function valAxisRotation(chart: Chart): number; export declare function categoryAxisLabels(chart: Chart, categoryCount: number): string[]; export declare function resolveCatAxisRotation(ctx: CanvasRenderingContext2D, chart: Chart, labels: string[], innerWidth: number): number; export declare function rotatedLabelBandHeight(ctx: CanvasRenderingContext2D, labels: string[], rotationDeg: number): number; export declare function rotatedLabelBandWidth(ctx: CanvasRenderingContext2D, labels: string[], rotationDeg: number): number; export declare function drawRotatedLabel(ctx: CanvasRenderingContext2D, text: string, anchorX: number, anchorY: number, rotationDeg: number, kind: "category" | "value"): void; export declare function drawAxisFrame(ctx: CanvasRenderingContext2D, chart: Chart, rect: Rect, ticks: number[], minV: number, maxV: number, horizontal: boolean, percent: boolean): Rect; export declare function drawCategoryAxis(ctx: CanvasRenderingContext2D, chart: Chart, inner: Rect, categoryCount: number, horizontal: boolean): void; export declare function drawCategoryAxisExtraRowsCentered(ctx: CanvasRenderingContext2D, chart: Chart, inner: Rect, categoryCount: number, xCenterFor: (i: number) => number): void; export declare function seriesLineWidth(s: ChartSeries, fallback: number): number; export declare function seriesLineDash(s: ChartSeries): number[]; export declare function withAlpha(color: string, alpha: number): string; export type LegendSwatchKind = "swatch" | "line" | "marker" | "lineMarker" | "verticalBar"; export declare function drawLegend(ctx: CanvasRenderingContext2D, series: ChartSeries[], rect: Rect, orientation?: "horizontal" | "vertical", chart?: Chart): void; export declare function measureVerticalLegendWidth(ctx: CanvasRenderingContext2D, series: ChartSeries[]): number; export declare function drawPlaceholderPlot(ctx: CanvasRenderingContext2D, chart: Chart, rect: Rect): void; export declare function effectiveLabels(chart: Chart, s: ChartSeries): DataLabels | undefined; export declare function pointLabel(base: DataLabels, i: number): { dl: DataLabels; text?: string; } | null | undefined; export declare function buildLabelText(dl: DataLabels, chart: Chart, series: ChartSeries, categoryIdx: number, value: number, categoryTotal: number): string; export declare function drawLabel(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, align?: CanvasTextAlign, baseline?: CanvasTextBaseline): void; export declare function resolveAxisRange(dataMin: number, dataMax: number, forcedMin: number | undefined, forcedMax: number | undefined, tickCount: number, forcedMajorUnit?: number): { minV: number; maxV: number; ticks: number[]; }; export declare function niceTicks(min: number, max: number, count: number): number[]; export declare function niceNum(range: number, round: boolean): number; export declare function formatAxisValue(v: number, fmt: string | undefined, divisor?: number | null): string; export declare function formatGeneral(v: number): string; export declare function decimalsIn(fmt: string): number; export declare function withGrouping(v: number, decimals: number): string;