import { Chart , ChartSize , ChartData , ChartOptions } from 'chart.js' ; /**
 * The properties for the ChartComponent object
 */ export interface IChartControlProps { /**
     * Provides an accessible version of the chart for
     * users with visual impairment
     */ accessibility ? : IChartAccessibility ; type { ChartData } data ? : ChartData ; type { Promise < ChartData > } datapromise ? : Promise < Chart . ChartData > ; type { JSX . Element | Function } loadingtemplate ? : JSX . Element | Function ; type { JSX . Element | Function } rejectedtemplate ? : JSX . Element | Function ; type { ChartOptions } options ? : ChartOptions ; type { ChartType } type : ChartType ; type { string } className ? : string ; /**
     * Specifies one of the Office color palettes.
     * If the background color is set in the datasets, this option will be overwritten.
     */ palette ? : ChartPalette ; type { object [ ] } plugins ? : object [ ] ; default useTheme ? : boolean ; param event param activeElements onClick ? ( event ? , activeElements ? ) : void ; param chart type { IChartJs } param event type { MouseEvent } param activeElements type { Array < { } > } onHover ? ( chart , event , activeElements ) : void ; param chart type { IChartJs } param newSize type { IChartSize } onResize ? ( chart , newSize ) : void ; } /**
 * The state of a chart
 */ export interface IChartControlState { isLoading : boolean ; data ? : Chart . ChartData ; rejected ? : { } ; } /**
 * The color palettes available within Office.
 */ export enum ChartPalette { /**
     * Office Colorful Palette 1:
     * Blue, Orange, Grey, Gold, Blue, Green
     */ OfficeColorful1 , /**
    * Office Colorful Palette 2:
    * Blue, Grey, Blue, Dark Blue, Dark Grey, Dark Blue
     */ OfficeColorful2 , /**
     * Office Colorful Palette 3:
     *  Orange, Gold, Green, Brown, Dark Yellow, Dark Green */ OfficeColorful3 , /**
     * Office Colorful Palette 4:
     * Green, Blue, Gold, Dark Green, Dark Blue, Dark Yellow */ OfficeColorful4 , /**
     * Monochromatic Palette 1:
     * Blue gradient, dark to light
     */ OfficeMonochromatic1 , /**
     * Monochromatic Palette 2:
     * Orange gradient, dark to light
     */ OfficeMonochromatic2 , /**
     * Monochromatic Palette 3:
     * Grey gradient, dark to light
     */ OfficeMonochromatic3 , /**
     * Monochromatic Palette 4:
     * Gold gradient, dark to light
     */ OfficeMonochromatic4 , /**
     * Monochromatic Palette 5:
     * Blue gradient, dark to light
     */ OfficeMonochromatic5 , /**
     * Monochromatic Palette 6:
     * Green gradient, dark to light
     */ OfficeMonochromatic6 , /**
     * Monochromatic Palette 7:
     * Dark Grey, Light Grey, Grey, Dark Grey, Light Grey, Grey
     */ OfficeMonochromatic7 , /**
     * Monochromatic Palette 8:
     * Blue gradient, light to dark
     */ OfficeMonochromatic8 , /**
     * Monochromatic Palette 9:
     * Orange gradient, light to dark
     */ OfficeMonochromatic9 , /**
     * Monochromatic Palette 10:
     * Grey gradient, light to dark
     */ OfficeMonochromatic10 , /**
     * Monochromatic Palette 11:
     * Gold gradient, light to dark
     */ OfficeMonochromatic11 , /**
     * Monochromatic Palette 12:
     * Blue gradient, light to dark
     */ OfficeMonochromatic12 , /**
     * Monochromatic Palette 13:
     * Green gradient, light to dark
     */ OfficeMonochromatic13 } export interface IChartAccessibility { default enable ? : boolean ; /**
     * Allows you to overwrite the default classname
     * of the accessible table
     */ className ? : string ; default caption ? : string ; /**
     * Provides a summary of the data
     */ summary ? : string ; /**
     * Provides an alternate text for the chart.
     */ alternateText ? : string ; /**
     * Allows you to custom-render your own accessible table
     */ onRenderTable ? : ( ) => JSX . Element ; } /**
 * Use this interface if you'd like to create a plugin
 */ export interface IChartPlugin { beforeInit ? ( chartInstance , options ? ) : void ; afterInit ? ( chartInstance , options ? ) : void ; beforeUpdate ? ( chartInstance , options ? ) : void ; afterUpdate ? ( chartInstance , options ? ) : void ; beforeLayout ? ( chartInstance , options ? ) : void ; afterLayout ? ( chartInstance , options ? ) : void ; beforeDatasetsUpdate ? ( chartInstance , options ? ) : void ; afterDatasetsUpdate ? ( chartInstance , options ? ) : void ; beforeRender ? ( chartInstance , options ? ) : void ; afterRender ? ( chartInstance , options ? ) : void ; beforeDraw ? ( chartInstance , easing , options ? ) : void ; afterDraw ? ( chartInstance , easing , options ? ) : void ; beforeDatasetsDraw ? ( chartInstance , easing , options ? ) : void ; afterDatasetsDraw ? ( chartInstance , easing , options ? ) : void ; beforeTooltipDraw ? ( chartInstance , tooltipData ? , options ? ) : void ; afterTooltipDraw ? ( chartInstance , tooltipData ? , options ? ) : void ; beforeEvent ? ( chartInstance , event , options ? ) : void ; afterEvent ? ( chartInstance , event , options ? ) : void ; resize ? ( chartInstance , newChartSize , options ? ) : void ; destroy ? ( chartInstance ) : void ; } /**
 * The types of charts available
 */ export type ChartType = 'line' | 'bar' | 'horizontalBar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie' | 'scatter' ; /**
 * The types of charts available
 */ export const ChartType = { Line : 'line' as ChartType , Bar : 'bar' as ChartType , HorizontalBar : 'horizontalBar' as ChartType , Radar : 'radar' as ChartType , Doughnut : 'doughnut' as ChartType , PolarArea : 'polarArea' as ChartType , Bubble : 'bubble' as ChartType , Pie : 'pie' as ChartType , Scatter : 'scatter' as ChartType } ;