import React, { HTMLAttributes } from 'react'; import { Chart as ChartJS } from 'chart.js'; import type { ChartData, ChartOptions, ChartType, ChartTypeRegistry, InteractionItem, Plugin, Point, BubbleDataPoint } from 'chart.js'; export interface CChartProps extends HTMLAttributes { /** * A string of all className you want applied to the base component. */ className?: string; /** * Enables custom html based tooltips instead of standard tooltips. * * @default true */ customTooltips?: boolean; /** * The data object that is passed into the Chart.js chart (more info). */ data: ChartData | ((canvas: HTMLCanvasElement) => ChartData); /** * A fallback for when the canvas cannot be rendered. Can be used for accessible chart descriptions. */ fallbackContent?: React.ReactNode; /** * Proxy for Chart.js getDatasetAtEvent. Calls with dataset and triggering event. */ getDatasetAtEvent?: (dataset: InteractionItem[], event: React.MouseEvent) => void; /** * Proxy for Chart.js getElementAtEvent. Calls with single element array and triggering event. */ getElementAtEvent?: (element: InteractionItem[], event: React.MouseEvent) => void; /** * Proxy for Chart.js getElementsAtEvent. Calls with element array and triggering event. */ getElementsAtEvent?: (elements: InteractionItem[], event: React.MouseEvent) => void; /** * Height attribute applied to the rendered canvas. * * @default 150 */ height?: number; /** * ID attribute applied to the rendered canvas. */ id?: string; /** * The options object that is passed into the Chart.js chart. */ options?: ChartOptions; /** * The plugins array that is passed into the Chart.js chart (more info) */ plugins?: Plugin[]; /** * If true, will tear down and redraw chart on all updates. * * @default false */ redraw?: boolean; /** * Chart.js chart type. * * @type {'line' | 'bar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie' | 'scatter'} */ type?: ChartType; /** * Width attribute applied to the rendered canvas. * * @default 300 */ width?: number; /** * Put the chart into the wrapper div element. * * @default true */ wrapper?: boolean; } export declare const CChart: React.ForwardRefExoticComponent | undefined>>;