/**
 * Checks if a value is invalid for plotting
 *
 * @param value - The value to check
 * @returns true if the value is invalid (should be replaced with null), false otherwise
 */
export declare function isInvalidPlotValue(value: unknown): boolean;
export declare function normalizePlotValue(value: number | string | null | undefined): number | null;
export interface SeriesSpanGapsOption {
    spanGaps?: boolean | number;
}
/**
 * For each series with a numeric spanGaps threshold, insert a null data point
 * between consecutive x timestamps whose gap exceeds the threshold.
 *
 * Why: uPlot draws a continuous line between all non-null points. When the
 * time gap between two consecutive samples is larger than the configured
 * spanGaps value, we inject a synthetic null at the midpoint so uPlot renders
 * a visible break instead of a misleading straight line across the gap.
 *
 * Because uPlot's AlignedData shares a single x-axis across all series, a null
 * is inserted for every series at each position where any series needs a break.
 *
 * Two-pass approach for performance:
 *   Pass 1 — count how many nulls will be inserted (no allocations).
 *   Pass 2 — fill pre-allocated output arrays by index (no push/reallocation).
 */
export declare function insertLargeGapNullsIntoAlignedData(data: uPlot.AlignedData, seriesOptions: SeriesSpanGapsOption[]): uPlot.AlignedData;
/**
 * Apply per-series spanGaps (boolean | number) handling to an aligned dataset.
 *
 * spanGaps controls how uPlot handles gaps in a series:
 *   - boolean true  → convert null → undefined so uPlot spans over every gap
 *                     (draws a continuous line, skipping missing samples)
 *   - boolean false → no change; nulls render as visible breaks (default)
 *   - number        → insert a null break point between any two consecutive
 *                     timestamps whose difference exceeds the threshold;
 *                     gaps smaller than the threshold are left as-is
 *
 * The input data is expected to be of the form:
 * [xValues, series1Values, series2Values, ...]
 */
export declare function applySpanGapsToAlignedData(data: uPlot.AlignedData, seriesOptions: SeriesSpanGapsOption[]): uPlot.AlignedData;
