import type { BorderRadius, CartesianScaleTypeRegistry, CommonElementOptions, CommonHoverOptions, ControllerDatasetOptions, CoreChartOptions, Element, ScriptableAndArrayOptions, ScriptableContext, VisualElement } from 'chart.js'; export type AnyObject = Record; export type AnchorX = 'left' | 'center' | 'right' | 'start' | 'end'; export type AnchorY = 'top' | 'center' | 'bottom' | 'start' | 'end'; export interface MatrixOptions extends Omit { borderRadius: number | BorderRadius; borderWidth: number | { top?: number; right?: number; bottom?: number; left?: number; }; anchorX: AnchorX; anchorY: AnchorY; width: number; height: number; } export interface MatrixControllerDatasetOptions extends ControllerDatasetOptions, ScriptableAndArrayOptions>, ScriptableAndArrayOptions> { } export interface MatrixDataPoint { x: number | string; y: number | string; v?: number; } export interface MatrixParsedDataPoint { x: number; y: number; } declare module 'chart.js' { interface ChartTypeRegistry { matrix: { chartOptions: CoreChartOptions<'matrix'>; datasetOptions: MatrixControllerDatasetOptions; defaultDataPoint: MatrixDataPoint; parsedDataType: MatrixParsedDataPoint; metaExtensions: AnyObject; scales: keyof CartesianScaleTypeRegistry; }; } } export interface MatrixProps { x: number; y: number; width: number; height: number; options?: Partial; } export interface MatrixElement extends Element, VisualElement { }