/** * GlassDataChart Component * * An advanced glass-styled chart component with physics-based interactions, * smooth animations, and rich customization options. */ import React from "react"; import { Chart as ChartJS } from "chart.js"; export type ChartVariant = "line" | "bar" | "area" | "pie" | "doughnut" | "polarArea" | "kpi"; export interface DataPoint { x: string | number; y: number; label?: string; color?: string; extra?: Record; formatType?: "number" | "currency" | "percentage" | "units"; formatOptions?: { decimals?: number; currencySymbol?: string; locale?: string; compact?: boolean; showPlus?: boolean; suffix?: string; prefix?: string; }; } export interface ChartDataset { id?: string; label: string; data: DataPoint[]; style?: { lineColor?: string; fillColor?: string; pointColor?: string; borderWidth?: number; pointRadius?: number; tension?: number; }; formatType?: "number" | "currency" | "percentage" | "units"; formatOptions?: { decimals?: number; currencySymbol?: string; locale?: string; compact?: boolean; showPlus?: boolean; suffix?: string; prefix?: string; }; } export type QualityTier = "low" | "medium" | "high" | "ultra"; export interface PhysicsParams { stiffness: number; dampingRatio: number; mass: number; precision: number; } interface GlassDataChartProps { data?: unknown; datasets?: ChartDataset[]; width?: string | number; height?: number; title?: string; subtitle?: string; variant?: ChartVariant; glassVariant?: "clear" | "frosted" | "tinted" | "luminous"; blurStrength?: "low" | "medium" | "high" | "standard"; color?: "primary" | "secondary" | "tertiary"; animation?: { physicsEnabled: boolean; duration: number; tension: number; friction: number; mass: number; easing: string; staggerDelay: number; }; interaction?: { zoomPanEnabled: boolean; zoomMode: "x" | "y" | "xy"; physicsHoverEffects: boolean; hoverSpeed: number; showTooltips: boolean; tooltipStyle: "frosted" | "dynamic"; tooltipFollowCursor: boolean; physics?: { tension: number; friction: number; mass: number; minZoom: number; maxZoom: number; wheelSensitivity: number; inertiaDuration: number; }; }; legend?: { show: boolean; position: "top" | "bottom"; align: "start" | "center" | "end"; style: "default" | "compact"; glassEffect: boolean; }; axis?: { showXGrid: boolean; showYGrid: boolean; showXLabels: boolean; showYLabels: boolean; axisColor: string; gridColor: string; gridStyle: "solid" | "dashed"; }; initialSelection?: number | number[]; showToolbar?: boolean; allowDownload?: boolean; palette?: string[]; allowTypeSwitch?: boolean; borderRadius?: number; borderColor?: string; elevation?: number | "level1" | "level2" | "level3" | "level4" | "level5"; className?: string; style?: React.CSSProperties; onDataPointClick?: (datasetIndex: number, dataIndex: number, data: DataPoint) => void; onSelectionChange?: (selection: number[]) => void; onTypeChange?: (type: ChartVariant) => void; onZoomPan?: (chart: ChartJS) => void; exportOptions?: { filename: string; quality: number; format: "png" | "jpeg"; backgroundColor: string; includeTitle: boolean; includeTimestamp: boolean; }; renderExportButton?: () => React.ReactNode; kpi?: { value: number; label: string; format: "number" | "currency" | "percentage"; }; useAdaptiveQuality?: boolean; getElementPhysicsOptions?: (dataPoint: DataPoint, datasetIndex: number, dataIndex: number, chartType: ChartVariant) => { hoverEffect?: { scale: number; opacity: number; }; clickEffect?: { scale: number; opacity: number; }; } | null; "aria-label"?: string; "data-testid"?: string; } type GlassDataChartRef = ChartJS; export declare const GlassDataChart: React.MemoExoticComponent>>; export default GlassDataChart; //# sourceMappingURL=GlassDataChart.d.ts.map