import type { RefObject, ReactNode, HTMLAttributes } from 'react' import { HighchartsReactProps } from 'highcharts-react-official' import type { HighchartsReactRefObject } from 'highcharts-react-official' import Highcharts from 'highcharts' import type { ButtonProps } from '../Button/types' import type { SkeletonVariant } from '../Skeleton/types' export const ChartV2BaseInstance = Highcharts export type ChartV2Type = typeof Highcharts export type ChartV2ReactProps = HighchartsReactProps export type ChartV2SkeletonProps = { show: boolean variant?: SkeletonVariant height?: number } export type ChartV2NoDataProps = { title?: string subtitle?: string slot?: ReactNode button?: ButtonProps } export type ChartV2Props = Omit & { highcharts?: ChartV2Type skeleton?: ChartV2SkeletonProps noData?: ChartV2NoDataProps } export type ChartV2Options = Highcharts.Options export type ChartV2SeriesOptionsType = Highcharts.SeriesOptionsType export type ChartV2SeriesLineOptions = Highcharts.SeriesLineOptions export type ChartV2SeriesColumnOptions = Highcharts.SeriesColumnOptions export type ChartV2SeriesBarOptions = Highcharts.SeriesBarOptions export type ChartV2SeriesPieOptions = Highcharts.SeriesPieOptions export type ChartV2SeriesScatterOptions = Highcharts.SeriesScatterOptions export type ChartV2SeriesSankeyOptions = Highcharts.SeriesSankeyOptions export type ChartV2SeriesAreaOptions = Highcharts.SeriesAreaOptions export type ChartV2SeriesXrangeOptions = Highcharts.SeriesXrangeOptions export type ChartV2Point = Highcharts.Point export type ChartV2PointMarkerOptionsObject = Highcharts.PointMarkerOptionsObject export type ChartV2XAxisOptions = Highcharts.XAxisOptions export type ChartV2YAxisOptions = Highcharts.YAxisOptions export type ChartV2 = Highcharts.Chart export type ChartV2Axis = Highcharts.Axis export type ChartV2Series = Highcharts.Series export type ChartV2SeriesZonesOptionsObject = Highcharts.SeriesZonesOptionsObject export type ChartV2ReactRefObject = HighchartsReactRefObject export type ChartV2ContainerProps = { children: ReactNode } & Omit, 'children' | 'style' | 'className'> export type ChartV2HeaderProps = { children: ReactNode } & Omit, 'children' | 'style' | 'className'> export type ChartV2LegendItem = Highcharts.Series | Highcharts.Point export type ChartV2CustomLegendItem = { key: string name: string color?: string value?: string | number } export type ChartV2LegendProps = { chartRef?: RefObject chartRefs?: ReadonlyArray> customLegendItems?: ChartV2CustomLegendItem[] renderItem?: (params: { item: ChartV2LegendItem name: string visible: boolean color: string value?: string | number onClick: () => void }) => ReactNode layout?: 'horizontal' | 'vertical' } & Omit, 'style' | 'className'>