import { ChartDataPoint, LineChartSeries } from './types'; /** * Chart utility functions */ /** * Get data domain from multiple series */ export declare function getMultiSeriesDomain(series: LineChartSeries[], accessor: (d: ChartDataPoint) => number): [number, number]; /** * Normalize data/series input for LineChart */ export declare function normalizeLineChartData(data?: ChartDataPoint[], series?: LineChartSeries[]): LineChartSeries[]; /** * Calculate chart dimensions including padding for axes and labels */ export declare function calculateChartDimensions(width: number, height: number, padding: { top: number; right: number; bottom: number; left: number; }): { plotArea: { x: number; y: number; width: number; height: number; }; total: { width: number; height: number; }; padding: { top: number; right: number; bottom: number; left: number; }; }; /** * Scale a value from data domain to chart range */ export declare function scaleLinear(value: number, domain: [number, number], range: [number, number]): number; /** Log scale (base 10) */ export declare function scaleLog(value: number, domain: [number, number], range: [number, number]): number; /** Time scale (value = ms epoch) linear wrapper */ export declare function scaleTime(value: number, domain: [number, number], range: [number, number]): number; export declare function generateLogTicks(domain: [number, number], count?: number): number[]; export declare function generateTimeTicks(domain: [number, number], count?: number): number[]; /** * Get data domain (min/max values) from dataset */ export declare function getDataDomain(data: ChartDataPoint[], accessor: (d: ChartDataPoint) => number): [number, number]; /** * Generate nice tick values for an axis */ export declare function generateTicks(min: number, max: number, targetCount?: number): number[]; /** * Convert chart coordinates to data coordinates */ export declare function chartToDataCoordinates(chartX: number, chartY: number, plotArea: { x: number; y: number; width: number; height: number; }, xDomain: [number, number], yDomain: [number, number]): { x: number; y: number; }; /** * Convert data coordinates to chart coordinates */ export declare function dataToChartCoordinates(dataX: number, dataY: number, plotArea: { x: number; y: number; width: number; height: number; }, xDomain: [number, number], yDomain: [number, number]): { x: number; y: number; }; /** * Find the closest data point to a chart coordinate */ export declare function findClosestDataPoint(chartX: number, chartY: number, data: ChartDataPoint[], plotArea: { x: number; y: number; width: number; height: number; }, xDomain: [number, number], yDomain: [number, number], maxDistance?: number): { dataPoint: ChartDataPoint; distance: number; } | null; /** * Calculate angle for pie chart slice */ export declare function calculatePieAngle(value: number, total: number, startAngle?: number, endAngle?: number): { startAngle: number; endAngle: number; centerAngle: number; }; /** * Calculate point on circle for pie chart labels */ export declare function getPointOnCircle(centerX: number, centerY: number, radius: number, angleInDegrees: number): { x: number; y: number; }; /** * Create smooth path for line chart */ export declare function createSmoothPath(points: { x: number; y: number; }[]): string; export declare const colorSchemes: { default: string[]; pastel: string[]; }; /** * Replace the default categorical palette while preserving reference identity for consumers. */ export declare function setDefaultColorScheme(palette?: string[]): string[]; /** * Get color from scheme */ export declare function getColorFromScheme(index: number, scheme?: string[]): string; /** * Clamp value between min and max */ export declare function clamp(value: number, min: number, max: number): number; /** * Linear interpolation */ export declare function lerp(start: number, end: number, t: number): number; /** * Calculate distance between two points */ export declare function distance(x1: number, y1: number, x2: number, y2: number): number; /** * Format number for display */ export declare function formatNumber(value: number, decimals?: number, locale?: string): string; /** * Format percentage for display */ export declare function formatPercentage(value: number, total: number, decimals?: number): string;