import { Granularity, QuickFilters } from '../../components/_inputs/granular-date-range/types.js';
import { FiltersType } from '../../components/_filters/filtersTypeEnum.js';
import { RelativeDateRange } from '../../components/_inputs/date-range/types.js';

interface defaultFilterValue {
  name: string
  value: string | DefaultDateFilterValue | DefaultGranularDateFilterValue
  type?: FiltersType
}

interface DefaultDateFilterValue {
  start: string
  end: string
  relative?: RelativeDateRange
}

interface DefaultGranularDateFilterValue {
  start: string
  end: string
  granularity: Granularity
  quickFilter: QuickFilters
}

interface defaultFilterConfig {
  reportId: string
  id: string
  values: defaultFilterValue[]
}

export type { DefaultDateFilterValue, DefaultGranularDateFilterValue, defaultFilterConfig, defaultFilterValue };
