import { NewNestedDataPoint, FlattenedDataPoint, AxisConfig } from './types'; /** Replace null, undefined, or non-array `data` with `[]` (empty / no-data state). */ export declare function normalizeChartData(data: NewNestedDataPoint[] | null | undefined): NewNestedDataPoint[]; export declare function transformNestedData(data: NewNestedDataPoint[], selectedKeys?: string[]): FlattenedDataPoint[]; export declare function transformScatterData(data: NewNestedDataPoint[], selectedKeys?: string[]): Array<{ name: string; x: number; y: number; seriesKey: string; }>; export declare function lightenHexColor(hex: string, amount?: number): string; export declare const formatNumber: (value: number | string) => string; export declare const capitaliseCamelCase: (text: string) => string; export type DateTimeFormatterOptions = { useUTC?: boolean; formatString?: string; dateOnly?: boolean; timeOnly?: boolean; showYear?: boolean; smartDateTimeFormat?: boolean; }; /** * Creates a DateTime formatter with custom options * @param options - Configuration options for the formatter * @param options.useUTC - Whether to use UTC timezone (default: true) * @param options.formatString - Optional custom format string * @param options.dateOnly - Show only dates (e.g., "1. Oct", "2. Oct") * @param options.timeOnly - Show only times (e.g., "12:00", "13:00") * @param options.showYear - Include year in the output (works with dateOnly and default mode) * @param options.smartDateTimeFormat - Alternates between date and time like Highcharts * @returns A formatter function that handles timestamps from any timezone * * @example * // Date only without year: "1. Oct" "2. Oct" "3. Oct" * createDateTimeFormatter({ dateOnly: true, showYear: false }) * * @example * // Date only with year: "1. Oct 2024" "2. Oct 2024" * createDateTimeFormatter({ dateOnly: true, showYear: true }) * * @example * // Time only: "00:00" "06:00" "12:00" * createDateTimeFormatter({ timeOnly: true }) * * @example * // Smart format (alternates): "1. Oct" "12:00" "2. Oct" "12:00" * createDateTimeFormatter({ smartDateTimeFormat: true }) * * @example * // Default with year: "1 Oct 2024, 12:00" * createDateTimeFormatter({ showYear: true }) */ export declare const createDateTimeFormatter: (options?: DateTimeFormatterOptions) => ((value: string | number) => string); /** * Get a formatter function based on axis type with optional DateTime customization * @param axisType - The type of axis (DATE_TIME, CURRENCY, PERCENTAGE, NUMBER) * @param dateTimeOptions - Options for DateTime formatting (only used when axisType is DATE_TIME) * @returns A formatter function for the specified axis type * * @example * // Simple usage with default UTC * getAxisFormatter(AxisType.DATE_TIME) * * @example * // Date only without year * getAxisFormatter(AxisType.DATE_TIME, { dateOnly: true }) * * @example * // Date only with year * getAxisFormatter(AxisType.DATE_TIME, { dateOnly: true, showYear: true }) * * @example * // Time only * getAxisFormatter(AxisType.DATE_TIME, { timeOnly: true }) * * @example * // Local timezone instead of UTC * getAxisFormatter(AxisType.DATE_TIME, { useUTC: false }) */ export declare const getAxisFormatter: (finalAxis: AxisConfig) => ((value: string | number) => string); /** * Suggests an optimal tick interval based on the data range * Automatically determines whether to use minutes, hours, days, etc. */ export declare function getSuggestedTickInterval(data: NewNestedDataPoint[], maxTicks?: number): { interval: number; description: string; unit: string; }; /** * Generates consistent, evenly-spaced tick values for datetime axes * This mimics Highcharts behavior where ticks are at regular intervals * * @param data - Chart data with timestamps in 'name' field * @param options - Configuration options * @returns Object containing tick array (as strings to match data format) and formatter function */ export declare function generateConsistentDateTimeTicks(data: NewNestedDataPoint[], options?: DateTimeFormatterOptions & { maxTicks?: number; customInterval?: number; }): { ticks: string[]; formatter: (value: string | number) => string; };