import { ReactElement } from "react";
import {
  Border as KendoBorder,
  LabelConnectors as KendoLabelConnectors,
  SeriesErrorBars as KendoSeriesErrorBars,
  SeriesExtremes as KendoSeriesExtremes,
  SeriesHighlight as KendoSeriesHighlight,
  SeriesLabels as KendoSeriesLabels,
  SeriesLine as KendoSeriesLine,
  SeriesMarkers as KendoSeriesMarkers,
  NegativeBubbleValues as KendoNegativeBubbleValues,
  SeriesNotes as KendoSeriesNotes,
  SeriesOutliers as KendoSeriesOutliers,
  Overlay as KendoOverlay,
  SeriesStack as KendoSeriesStack,
  LineStyle as KendoLineStyle,
  BulletTarget as KendoBulletTarget,
  SeriesTrendline as KendoSeriesTrendline,
  SeriesType as KendoSeriesType,
  DashType as KendoDashType,
  Margin as KendoMargin,
} from "@progress/kendo-react-charts";
import {
  SeriesTooltip as KendoSeriesTooltip,
  SeriesVisualArgs as KendoSeriesVisualArgs,
} from "@progress/kendo-react-charts/dist/npm/common/property-types";
import { Element as KendoElement } from "@progress/kendo-drawing";

export interface ChartSeriesItemProps {
  dataTestId?: string;
  children?: React.ReactNode;
  aggregate?: any;
  autoFit?: boolean;
  axis?: string;
  border?: KendoBorder;
  categoryAxis?: string;
  categoryField?: string;
  closeField?: string;
  color?: any;
  colorField?: string;
  connectors?: KendoLabelConnectors;
  currentField?: string;
  dashType?: KendoDashType;
  data?: any[];
  downColor?: string;
  downColorField?: string;
  drilldownField?: string;
  dynamicHeight?: boolean;
  dynamicSlope?: boolean;
  errorBars?: KendoSeriesErrorBars;
  errorHighField?: string;
  errorLowField?: string;
  explodeField?: string;
  extremes?: KendoSeriesExtremes;
  field?: string;
  for?: string;
  fromField?: string;
  gap?: number;
  highField?: string;
  highlight?: KendoSeriesHighlight;
  holeSize?: number;
  labels?: KendoSeriesLabels;
  line?: KendoSeriesLine;
  lowerField?: string;
  lowField?: string;
  margin?: number | KendoMargin;
  markers?: KendoSeriesMarkers;
  maxSize?: number;
  meanField?: string;
  medianField?: string;
  minSize?: number;
  missingValues?: "gap" | "zero" | "interpolate";
  name?: string;
  neckRatio?: number;
  negativeColor?: string;
  negativeValues?: KendoNegativeBubbleValues;
  notes?: KendoSeriesNotes;
  noteTextField?: string;
  opacity?: number;
  openField?: string;
  outliers?: KendoSeriesOutliers;
  outliersField?: string;
  overlay?: KendoOverlay;
  padding?: number;
  q1Field?: string;
  q3Field?: string;
  segmentSpacing?: number;
  size?: number;
  sizeField?: string;
  spacing?: number;
  stack?: string | boolean | KendoSeriesStack;
  startAngle?: number;
  style?: KendoLineStyle;
  summaryField?: string;
  target?: KendoBulletTarget;
  toField?: string;
  tooltip?: KendoSeriesTooltip;
  trendline?: KendoSeriesTrendline;
  type?: KendoSeriesType;
  upperField?: string;
  visible?: boolean;
  visibleInLegend?: boolean;
  visibleInLegendField?: string;
  width?: number;
  xAxis?: string;
  xErrorHighField?: string;
  xErrorLowField?: string;
  xField?: string;
  yAxis?: string;
  yErrorHighField?: string;
  yErrorLowField?: string;
  yField?: string;
  zIndex?: number;
  drilldownSeriesFactory?: (props: any) => ReactElement<any>;
  visual?: (event: KendoSeriesVisualArgs) => KendoElement;
}
