import { CustomComponent as KendoCustomComponent } from "@progress/kendo-react-common";
import {
  PivotGridCellProps as KendoPivotGridCellProps,
  PivotGridColumnProps as KendoPivotGridColumnProps,
  PivotGridAxis as KendoPivotGridAxis,
  PivotGridHeaderCellProps as KendoPivotGridHeaderCellProps,
  PivotGridRowProps as KendoPivotGridRowProps,
  Tuple as KendoTuple,
  PivotDataItem as KendoPivotDataItem,
  PivotGridAxesChangeEvent as KendoPivotGridAxesChangeEvent,
} from "@progress/kendo-react-pivotgrid";

export interface PivotGridProps {
  dataTestId?: string;
  cell?: KendoCustomComponent<KendoPivotGridCellProps>;
  className?: string;
  column?: KendoCustomComponent<KendoPivotGridColumnProps>;
  columnAxes?: KendoPivotGridAxis[];
  columnHeadersCell?: React.ComponentType<KendoPivotGridHeaderCellProps>;
  columnHeadersColumn?: React.ComponentType<KendoPivotGridColumnProps>;
  columnHeadersRow?: React.ComponentType<KendoPivotGridRowProps>;
  columns?: KendoTuple[];
  data?: KendoPivotDataItem[];
  dataColumn?: React.ComponentType<KendoPivotGridColumnProps>;
  dataRow?: React.ComponentType<KendoPivotGridRowProps>;
  headerCell?: KendoCustomComponent<KendoPivotGridHeaderCellProps>;
  id?: string;
  navigatable?: boolean;
  row?: KendoCustomComponent<KendoPivotGridRowProps>;
  rowAxes?: KendoPivotGridAxis[];
  rowHeadersCell?: React.ComponentType<KendoPivotGridHeaderCellProps>;
  rowHeadersColumn?: React.ComponentType<KendoPivotGridColumnProps>;
  rowHeadersRow?: React.ComponentType<KendoPivotGridRowProps>;
  rows?: KendoTuple[];
  style?: React.CSSProperties;
  tabIndex?: number;
  onColumnAxesChange?: (event: KendoPivotGridAxesChangeEvent) => void;
  onRowAxesChange?: (event: KendoPivotGridAxesChangeEvent) => void;
}
