import type { ChartSpec } from "./catalog"; /** * Dependency-free default chart renderer: a validated ChartSpec in, a * self-contained SVG string out. Pure — no DOM — so it runs server-side or in * any framework component (call it client-side with the viewer's mode so dark * themes get the dark-stepped palette, not an automatic flip). * * Design method: thin marks with rounded data-ends, 2px surface gaps between * adjacent fills, recessive horizontal grid, a legend for ≥2 series plus * direct labels, all text in text tokens (never series colors), native * hover tooltips per mark. The default palette is the validated reference set * (worst adjacent CVD ΔE 24.2 light / 10.3 dark) — override `palette` with * your brand's VALIDATED hues, in their fixed slot order. */ export type UiSvgTheme = { /** Categorical hues in fixed slot order (series 1..n). */ palette: string[]; surface: string; textPrimary: string; textSecondary: string; grid: string; }; export declare const LIGHT_UI_THEME: UiSvgTheme; export declare const DARK_UI_THEME: UiSvgTheme; export type RenderChartSvgOptions = { mode?: "light" | "dark"; /** Override any theme slot (e.g. your brand palette / chat-bubble surface). */ theme?: Partial<UiSvgTheme>; width?: number; height?: number; }; /** Render a validated ChartSpec to a self-contained SVG string. */ export declare const renderChartSvg: (spec: ChartSpec, options?: RenderChartSvgOptions) => string;