/** * Theme - Visual styling configuration for VeloPlot * * Provides customizable themes for the chart including: * - Grid styling * - Axis styling * - Legend styling * - Cursor styling */ export interface GridTheme { /** Grid visibility */ visible: boolean; /** Major grid line color */ majorColor: string; /** Minor grid line color */ minorColor: string; /** Major grid line width */ majorWidth: number; /** Minor grid line width */ minorWidth: number; /** Line dash pattern for major lines [dash, gap] */ majorDash: number[]; /** Line dash pattern for minor lines [dash, gap] */ minorDash: number[]; /** Show minor grid lines */ showMinor: boolean; /** Number of minor divisions between major lines */ minorDivisions: number; } export interface AxisTheme { /** Axis line color */ lineColor: string; /** Axis line width */ lineWidth: number; /** Tick mark color */ tickColor: string; /** Tick mark length */ tickLength: number; /** Label color */ labelColor: string; /** Label font size */ labelSize: number; /** Axis title color */ titleColor: string; /** Axis title font size */ titleSize: number; /** Font family */ fontFamily: string; } export interface LegendTheme { /** Legend visibility */ visible: boolean; /** Position */ position: "top-left" | "top-right" | "bottom-left" | "bottom-right"; /** Background color */ backgroundColor: string; /** Border color */ borderColor: string; /** Border radius */ borderRadius: number; /** Text color */ textColor: string; /** Font size */ fontSize: number; /** Font family */ fontFamily: string; /** Padding inside legend */ padding: number; /** Gap between items */ itemGap: number; /** Color swatch size */ swatchSize: number; } export interface CursorTheme { /** Cursor line color */ lineColor: string; /** Cursor line width */ lineWidth: number; /** Cursor line dash pattern */ lineDash: number[]; /** Tooltip background color */ tooltipBackground: string; /** Tooltip border color */ tooltipBorder: string; /** Tooltip text color */ tooltipColor: string; /** Tooltip font size */ tooltipSize: number; } export interface ToolbarTheme { /** Toolbar background color */ backgroundColor: string; /** Border color */ borderColor: string; /** Border radius */ borderRadius: number; } export interface ChartTheme { /** Theme name */ name: string; /** Whether the theme is dark */ isDark: boolean; /** Background color */ backgroundColor: string; /** Plot area background color */ plotAreaBackground: string; /** Plot area border color */ plotBorderColor: string; /** Grid theme */ grid: GridTheme; /** X-axis theme */ xAxis: AxisTheme; /** Y-axis theme */ yAxis: AxisTheme; /** Legend theme */ legend: LegendTheme; /** Cursor theme */ cursor: CursorTheme; /** Toolbar theme */ toolbar: ToolbarTheme; } export declare const DARK_THEME: ChartTheme; export declare const MIDNIGHT_THEME: ChartTheme; /** Light theme - Clean white background */ export declare const LIGHT_THEME: ChartTheme; export declare const HIGH_CONTRAST_THEME: ChartTheme; /** Electrochemistry theme - Professional blue tones */ export declare const ELECTROCHEM_THEME: ChartTheme; /** * Create a custom theme by merging with base theme */ export declare function createTheme(base: ChartTheme, overrides: Partial): ChartTheme; /** * Get a theme by name */ export declare function getThemeByName(name: string): ChartTheme; /** Default theme export */ export declare const DEFAULT_THEME: ChartTheme; export { type ColorScheme, COLOR_SCHEMES, VIBRANT_SCHEME, PASTEL_SCHEME, NEON_SCHEME, EARTH_SCHEME, OCEAN_SCHEME, getColorScheme, getColorFromScheme, getDefaultSchemeForTheme, } from './colorSchemes';