import type { Datum } from "./datumTypes";
/**
 * Validates chart data and accessors at render time.
 * Returns null if data is valid, or an error message string if not.
 *
 * Error messages are designed for AI-agent consumption:
 * they include the problem, the available fields, AND the suggested fix.
 *
 * Samples first, last, and a middle element to catch common mistakes
 * (wrong field names, missing data) without iterating the entire dataset.
 */
type AccessorLike = string | ((...args: any[]) => any);
interface ArrayDataValidation {
    componentName: string;
    data: any[] | undefined | null;
    accessors?: Record<string, AccessorLike | undefined>;
    requiredProps?: Datum;
}
interface ObjectDataValidation {
    componentName: string;
    data: any | undefined | null;
    dataLabel?: string;
}
interface NetworkDataValidation {
    componentName: string;
    nodes?: any[] | undefined | null;
    edges?: any[] | undefined | null;
    nodesRequired?: boolean;
    edgesRequired?: boolean;
    accessors?: Record<string, AccessorLike | undefined>;
}
/**
 * Validate array-based chart data (LineChart, BarChart, Scatterplot, etc.)
 */
export declare function validateArrayData({ componentName, data, accessors, requiredProps, }: ArrayDataValidation): string | null;
/**
 * Validate object/hierarchical data (TreeDiagram, Treemap, CirclePack)
 */
export declare function validateObjectData({ componentName, data, dataLabel, }: ObjectDataValidation): string | null;
/**
 * Validate network data (ForceDirectedGraph, ChordDiagram, SankeyDiagram)
 */
export declare function validateNetworkData({ componentName, nodes, edges, nodesRequired, edgesRequired, accessors, }: NetworkDataValidation): string | null;
export {};
