export declare const CHART_MARGIN: { readonly top: 12; readonly right: 16; readonly bottom: 32; readonly left: 44; }; export declare function niceTicks(min: number, max: number, target?: number): number[]; export declare function fixedTicks(min: number, max: number, target?: number): number[]; export declare function scaleLinear(v: number, d0: number, d1: number, r0: number, r1: number): number; /** Value-axis scale type. `log` requires strictly positive values. */ export type ChartScale = "linear" | "log"; /** Lowest strictly-positive value among the args; floor for a log domain. */ export declare function smallestPositive(...vals: number[]): number; /** Power-of-ten ("nice") ticks spanning `[min, max]` for a log axis. */ export declare function logTicks(min: number, max: number): number[]; export declare function fixedLogTicks(min: number, max: number): number[]; export declare function validLinearDomain(domain: [number, number] | undefined): [number, number] | null; export declare function validLogDomain(domain: [number, number] | undefined): [number, number] | null; export declare function clampFraction(value: number): number; export declare function formatTick(v: number): string; export declare function isNumeric(x: number | string): x is number; export declare function buildLinearPath(pts: { x: number; y: number; }[]): string; export declare function buildSmoothPath(pts: { x: number; y: number; }[]): string; /** * Maximal runs of consecutive line segments sharing the same kind; `start` / * `end` are inclusive point indices. A segment between two consecutive points * is a forecast (dashed) segment when EITHER endpoint is a forecast datum, so * the actual→forecast transition stays connected. */ export type ForecastRun = { start: number; end: number; forecast: boolean; }; export declare function forecastRuns(flags: boolean[]): ForecastRun[]; /** `true` si le ton catégoriel est clair (texte sombre requis pour le contraste). */ export declare function isLightTone(tone: string): boolean; /** Couleur de texte (token) lisible sur un fond catégoriel donné. */ export declare function labelColorForTone(tone: string): string; /** * Semantic tone for an analytical overlay (reference line / band / goal). * Maps to the feedback token family — these are *markers*, not categorical * series, so they reuse the success/warning/error/info semantics. `neutral` * (the default) uses the strong border / secondary text tokens. */ export type ChartOverlayTone = "neutral" | "success" | "warning" | "error" | "info"; export type ChartReferenceLine = { value: number; label?: string; tone?: ChartOverlayTone; axis?: "x" | "y"; }; export type ChartBand = { from: number; to: number; label?: string; tone?: ChartOverlayTone; }; export type ChartGoalLine = { value: number; label?: string; }; /** Tone-suffixed class name for an overlay element (defaults to `neutral`). */ export declare function overlayToneClass(prefix: string, tone: ChartOverlayTone | undefined): string; /** * Least-squares linear regression over finite points. Returns the line in DATA * space (`y = slope·x + intercept`) plus the x-range it was fit on, or `null` * when fewer than two finite points exist or the x-values are degenerate. */ export declare function linearRegression(pts: ReadonlyArray<{ x: number; y: number; }>): { slope: number; intercept: number; minX: number; maxX: number; } | null; /** * Extends a value-axis `[min, max]` so finite overlay values stay inside the * plot. Reference lines on the value axis (default `y`), band bounds, the goal * value and finite error-bar extents are all folded in. Non-finite values are * ignored. Returns the original range untouched when no overlay needs it. */ export declare function extendValueDomain(min: number, max: number, overlays: { referenceLines?: ReadonlyArray; referenceAxis?: "x" | "y"; bands?: ReadonlyArray; goalLine?: ChartGoalLine | null; extraValues?: ReadonlyArray; }): [number, number]; /** * Screen-reader descriptions of the active overlays, appended after the data * values in the ChartDataList. Empty when no overlay is present. */ export declare function overlayDataListItems(overlays: { referenceLines?: ReadonlyArray; bands?: ReadonlyArray; goalLine?: ChartGoalLine | null; trend?: { slope: number; intercept: number; } | null; }): string[]; export declare function chartDataList(label: string, items: string[]): import("vue").VNode | null; //# sourceMappingURL=chartScale.d.ts.map