import React from 'react'; /** * Optional bridge interface to inject theme values from host design system */ export interface HostThemeBridge { /** Primary text color */ textPrimary?: string; /** Secondary text color */ textSecondary?: string; /** Background color */ background?: string; /** Grid line color */ grid?: string; /** Array of accent colors for data visualization */ accentPalette?: string[]; /** Font family */ fontFamily?: string; } /** * Chart theme configuration */ export interface ChartTheme { /** Color values used across charts */ colors: { /** Primary text color */ textPrimary: string; /** Secondary text color */ textSecondary: string; /** Background color */ background: string; /** Grid line color */ grid: string; /** Palette of colors for data series */ accentPalette: string[]; }; /** Font size scale */ fontSize: { xs: number; sm: number; md: number; lg: number; }; /** Border radius for chart elements */ radius: number; /** Font family */ fontFamily?: string; } /** * Default categorical series palettes — a fixed hue order, assigned by slot, never cycled. * * Both sets pass all six palette checks (lightness band, chroma floor, CVD separation, * normal-vision floor, 3:1 contrast) against their own surface. The dark set is *selected* * for the dark surface rather than reused from the light one: on a dark background the * light set put four hues outside the lightness band and dropped `#4a3aa7` to 2.04:1 * contrast, which is effectively invisible. * * Same hue order in both, so a series keeps its identity across a theme switch. Re-run the * palette validator before changing either — worst adjacent pair is currently ΔE 20.9 * (light) and 15.1 (dark) under simulated CVD, against a floor of 8. */ export declare const DEFAULT_ACCENT_PALETTE_LIGHT: string[]; export declare const DEFAULT_ACCENT_PALETTE_DARK: string[]; /** * Provider component for chart theming * @param value - Partial theme overrides * @param hostThemeBridge - Optional bridge to host design system theme * @param children - Child components to render */ export declare const ChartThemeProvider: React.FC<{ value?: Partial; hostThemeBridge?: HostThemeBridge; children: React.ReactNode; }>; /** * Hook to access the current chart theme * @returns Current chart theme configuration */ export declare function useChartTheme(): ChartTheme; /** * Convenience hook for host integration (expects a host design system theme object) * @param host - Host design system theme object * @returns Chart theme derived from host theme */ export declare function useHostChartTheme(host: { text?: { primary?: string; secondary?: string; }; backgrounds?: { surface?: string; }; colors?: { gray?: string[]; primary?: string[]; }; } | null | undefined): ChartTheme;