import { ReactElement, CSSProperties, ReactNode } from 'react'; import { CurveFactory, CurveFactoryLineOnly, Selection } from 'd3'; export type RadarChartFormatValue = (value: number, index: number) => string; export type RadarChartRenderLabelAnchor = 'start' | 'middle' | 'end'; export type RadarChartRenderLabelProps = { item: RadarChartData; items: RadarChartData[]; anchor: RadarChartRenderLabelAnchor; index: number; }; export type RadarChartRenderLabel = (props: RadarChartRenderLabelProps) => ReactNode; export type RadarChartSelectLabel = (label: Selection, props: RadarChartRenderLabelProps) => void; export interface RadarChartProps { data: RadarChartData[][]; className?: string; style?: CSSProperties; height?: number; width?: number; levels?: number; bleedLength?: number; curve?: CurveFactory | CurveFactoryLineOnly; polar?: boolean; paddingX?: number; paddingY?: number; formatValue?: RadarChartFormatValue; formatAxisValue?: RadarChartFormatValue; badgePrefix?: string; labelOffset?: number; circleRadius?: number; minValue?: number; maxValue?: number; svgElements?: ReactElement; renderLabel?: RadarChartRenderLabel; selectLabel?: RadarChartSelectLabel; customize?: (svg: Selection) => void; radarStyles?: string[]; labelIndex?: number; } export interface RadarChartData { name?: string; value: number; }