import type { SerializedSelections } from "./selectionSerializer";
import type { Datum } from "../charts/shared/datumTypes";
export interface ChartConfig {
    /** Component name, e.g. "LineChart", "SankeyDiagram" */
    component: string;
    /** Serializable props only — functions and React elements stripped */
    props: Datum;
    /** Config schema version */
    version: string;
    /** ISO 8601 timestamp */
    createdAt: string;
    /** Optional serialized selection/brush state */
    selections?: SerializedSelections;
}
export interface ToConfigOptions {
    /** Include data arrays in the config. Default: true */
    includeData?: boolean;
    /** Serialized selection state to embed */
    selections?: SerializedSelections;
}
export type CopyFormat = "json" | "jsx";
export declare function toConfig(componentName: string, props: Datum, options?: ToConfigOptions): ChartConfig;
export declare function fromConfig(config: ChartConfig): {
    componentName: string;
    props: Datum;
};
export declare function toURL(config: ChartConfig): string;
export declare function fromURL(urlString: string): ChartConfig;
export declare function copyConfig(config: ChartConfig, format?: CopyFormat): Promise<void>;
export declare function configToJSX(config: ChartConfig): string;
