import type { Datum } from "./datumTypes";
import { VALIDATION_MAP } from "./validationMap";
export { VALIDATION_MAP };
export interface ValidationResult {
    valid: boolean;
    errors: string[];
}
export type PropType = "string" | "number" | "boolean" | "array" | "object" | "function";
export interface PropDef {
    type: PropType | PropType[];
    enum?: readonly string[];
}
type DataShape = "array" | "object" | "network" | "realtime" | "none";
export interface ComponentSpec {
    /** Props that must be present */
    required: string[];
    /** Data shape — drives which validateChartData helper to call; "none" means no data prop is expected */
    dataShape: DataShape;
    /** Accessor props to validate against data (key = prop name) */
    dataAccessors: string[];
    /** Per-prop type / enum constraints */
    props: Record<string, PropDef>;
}
/**
 * Validate props for a Semiotic HOC chart component.
 *
 * Checks: component name, required props, prop types, enum values,
 * unknown prop names (typo detection), and data shape + accessor validity.
 */
export declare function validateProps(componentName: string, props: Datum): ValidationResult;
