export enum AxisAggregate {
  Select = '-1',
  Sum = 'sum',
  Min = 'min',
  Max = 'max',
  Average = 'average',
  Median = 'median',
  Count = 'count',
}
  
export interface AxisDefinition {
  id: string;
  name: string;
  path: string;
  type: string;
}

export interface ReportFilter {
  id: string;
  name: string;
}
  
export interface ReportType {
  id: string;
  name: string;
}

export interface DateRange {
  start: number | null;
  end: number | null;
}
  
export interface AxisX {
  axis: AxisDefinition;
}
  
export interface AxisY {
  axis: AxisDefinition;
  aggregate: AxisAggregate;
}
  
export interface ReportDefinition {
  name: string;
  description: string;
  filter: ReportFilter;
  type: ReportType;
  x: AxisX;
  y: AxisY[];
  dateRange?: DateRange;
}
  