import type { DataVizColors } from '@/types/theme';
export declare const DEFAULT_DATAVIZ_LIGHT: DataVizColors;
export declare const DEFAULT_DATAVIZ_DARK: DataVizColors;
export declare const CATEGORICAL_LENGTH = 12;
export declare function parseDataViz(json: string | null | undefined, fallback: DataVizColors): DataVizColors;
/** Categorical colour by zero-based series index (wraps modulo CATEGORICAL_LENGTH). */
export declare function getCategoricalColor(index: number): string;
/** Returns the first `count` categorical colours (wraps if count > 8). */
export declare function getCategoricalColors(count: number): string[];
export declare function getTrendColor(direction: 'up' | 'down' | 'neutral'): string;
export declare function getSequentialPalette(): {
    low: string;
    mid: string;
    high: string;
};
export declare function getDataVizAccent(): string;
/** Snapshot of all dashboard colours — handy for Recharts setups that take arrays. */
export declare function getAllChartColors(): {
    categorical: string[];
    trend: {
        up: string;
        down: string;
        neutral: string;
    };
    sequential: {
        low: string;
        mid: string;
        high: string;
    };
    accent: string;
};
export declare function generateCategoricalPalette(seedHex: string, count?: number): string[];
export declare function generateSequentialPalette(seedHex: string): {
    low: string;
    mid: string;
    high: string;
};
/**
 * Generates a trend triad (up / down / neutral) tonally related to the seed
 * accent. Hue is fixed to green (up), red (down), neutral grey (down on chroma)
 * because trend semantics are conventional — accent only drives saturation/
 * lightness so the triad blends with the theme without breaking accessibility.
 */
export declare function generateTrendColors(seedHex: string, mode: 'light' | 'dark'): {
    trendUp: string;
    trendDown: string;
    trendNeutral: string;
};
/**
 * Interpolates a sequential palette {low, mid, high} at position t ∈ [0,1].
 * t = 0 → low, t = 0.5 → mid, t = 1 → high. Used by heatmap-style widgets
 * that need to map a continuous value to a single colour.
 */
export declare function interpolateSequential(palette: {
    low: string;
    mid: string;
    high: string;
}, t: number): string;
export declare function mixHex(aHex: string, bHex: string, ratio: number): string;
//# sourceMappingURL=dataVizColors.d.ts.map