import type { Datum } from "../charts/shared/datumTypes";
/**
 * Shared chart-family classification + measure/dimension role resolution.
 *
 * `describeChart` (prose) and `buildNavigationTree` (structure) both need to
 * know which family a component belongs to and which props carry its measure
 * (quantitative) and dimension (categorical/ordered) accessors. This is the
 * single source of truth so the two surfaces can't drift apart.
 *
 * Pure, dependency-light (types only).
 */
export declare const XY_FAMILY: Set<string>;
export declare const BAR_FAMILY: Set<string>;
export declare const PART_TO_WHOLE: Set<string>;
export declare const DISTRIBUTION: Set<string>;
export interface ChartRoles {
    measure?: string;
    measureFallback: string;
    dimension?: string;
    dimensionFallback: string;
}
/** The measure (quantitative) and dimension (categorical/ordered) accessors, by family. */
export declare function roles(component: string, props: Datum): ChartRoles;
/** First string-valued series-splitting accessor among the known channels, if any. */
export declare function seriesField(props: Datum): string | undefined;
/** Format a dimension value (the label at an extremum) — dates as ISO day, numbers compactly. */
export declare function fmtDim(v: unknown, fmtNum: (n: number) => string): string;
