import { CSSProperties } from 'react'; export type ChartTheme = 'light' | 'dark' | 'glass'; export type ChartVariant = 'default' | 'minimal' | 'detailed'; export type ChartType = 'line' | 'area' | 'bar' | 'pie' | 'scatter' | 'heatmap' | 'radar'; export interface ChartDataPoint { x: number | string | Date; y: number | string; label?: string; color?: string; size?: number; metadata?: Record; formattedValue?: string | number; } export interface ChartSeries { id: string; name: string; data: ChartDataPoint[]; type?: ChartType; color?: string; style?: CSSProperties; visible?: boolean; zIndex?: number; } export type DataPoint = ChartDataPoint; export interface TooltipData { datasetIndex: number; dataIndex: number; x: number; y: number; value: { dataset?: string; label?: string; value?: number | string; color?: string; extra?: Record; }; } export interface ChartDataset { id?: string; label?: string; data: (number | ChartDataPoint)[]; backgroundColor?: string | string[]; borderColor?: string | string[]; borderWidth?: number; fill?: boolean | number | string; tension?: number; pointRadius?: number; pointHoverRadius?: number; style?: CSSProperties; hidden?: boolean; } export interface ChartAxis { id: string; label?: string; type: 'linear' | 'log' | 'category' | 'time'; domain?: [number | string, number | string]; ticks?: number; format?: (value: any) => string; style?: CSSProperties; grid?: boolean; show?: boolean; } export interface ChartGrid { show?: boolean; style?: CSSProperties; horizontal?: boolean; vertical?: boolean; } export interface ChartLegend { show?: boolean; position?: 'top' | 'bottom' | 'left' | 'right'; align?: 'start' | 'center' | 'end'; style?: CSSProperties; itemStyle?: CSSProperties; interactive?: boolean; } export interface ChartTooltip { show?: boolean; format?: 'number' | 'currency' | 'percentage' | 'string'; style?: CSSProperties; followCursor?: boolean; shared?: boolean; position?: 'top' | 'bottom' | 'left' | 'right' | 'auto'; offset?: number; } export interface ChartAnimation { enabled?: boolean; duration?: number; easing?: string; delay?: number; stagger?: number; } export interface ChartInteraction { hover?: boolean; click?: boolean; zoom?: boolean; pan?: boolean; brush?: boolean; onHover?: (data: ChartDataPoint, series: ChartSeries) => void; onClick?: (data: ChartDataPoint, series: ChartSeries) => void; onZoom?: (domain: [number, number]) => void; onPan?: (domain: [number, number]) => void; } export interface ChartResponsive { enabled?: boolean; breakpoints?: { [key: string]: Partial; }; } export interface ChartConfig { theme: ChartTheme; variant: ChartVariant; type: ChartType; width?: number | string; height?: number | string; margin?: { top: number; right: number; bottom: number; left: number; }; background?: string; series: ChartSeries[]; xAxis?: ChartAxis; yAxis?: ChartAxis; grid?: ChartGrid; legend?: ChartLegend; tooltip?: ChartTooltip; animation?: ChartAnimation; interaction?: ChartInteraction; responsive?: ChartResponsive; style?: CSSProperties; } export interface ChartState { hoveredPoint?: ChartDataPoint; hoveredSeries?: ChartSeries; selectedPoints?: ChartDataPoint[]; selectedSeries?: ChartSeries[]; zoomDomain?: [number, number]; panOffset?: number; isLoading?: boolean; error?: string; } export interface ChartQualityTier { tier: 'low' | 'medium' | 'high' | 'ultra'; maxDataPoints: number; animationEnabled: boolean; interactionEnabled: boolean; quality: 'fast' | 'balanced' | 'quality'; } export interface ChartPhysicsConfig { enabled?: boolean; stiffness?: number; damping?: number; mass?: number; velocity?: number; friction?: number; } export interface ChartPerformanceMetrics { renderTime: number; dataProcessingTime: number; animationTime: number; memoryUsage: number; fps: number; } export type ChartEventType = 'hover' | 'click' | 'zoom' | 'pan' | 'brush' | 'resize' | 'dataUpdate' | 'themeChange'; export interface ChartEvent { type: ChartEventType; data?: any; series?: ChartSeries; point?: ChartDataPoint; timestamp: number; source: 'user' | 'system' | 'animation'; } export interface ChartPlugin { id: string; name: string; version: string; enabled: boolean; config?: Record; init?: (chart: any) => void; destroy?: () => void; onEvent?: (event: ChartEvent) => void; render?: (context: any) => void; } //# sourceMappingURL=ChartTypes.d.ts.map