import {
  DataItemHistoryOptionsInterface,
  DataItemValueInterface,
  DataItemInterface,
  DataItemDimensionIdentifierInterface,
} from "../..";

export enum VisualisationType {
  TIMESERIES = "timeseries",
  PIE = "pie",
  HEATMAP = "heatmap",
  SPIDER = "spider",
  HISTOGRAMM = "histogramm",
  HIERARCHY = "hierarchy",
  KPI = "kpi",
  TABLE = "table",
  RAW = "raw",
}

export interface StateInterface {
  items: DataItemDimensionIdentifierInterface[];
  time: DataItemHistoryOptionsInterface;
  visualisation: VisualisationType;
  settings: Record<string, any>;
}

export interface StepProps {
  state: StateInterface;
  updateState: (
    callback: (draft: StateInterface) => void | StateInterface
  ) => void;
}

export interface VisualisationProps {
  state: StateInterface;
  items: Record<string, DataItemInterface>;
  data: Record<string, DataItemValueInterface[]>;
}
