The following TypeScript interface defines a VIF:
// @ts-ignore
import { DateInput } from '@fullcalendar/core/datelib/env';
import { ColumnState } from '@ag-grid-community/core';
import { Hierarchy } from 'common/authoring_workflow/reducers/types';
import {
  Filters as FilterBarFilters,
  ParameterOverrides as FilterBarParameterOverrides
} from 'common/components/FilterBar/types';
import { ColumnFormat, ViewColumn } from 'common/types/viewColumn';

/**
 * This is the latest vif version.
 */
export type Filters = FilterBarFilters;
export type Vif = V3Vif;
export type Series = V3VifSeries;
export type SeriesType = string; //barChart, columnChart, comboChart.column, comboChart.line, featureMap, histogram, pieChart, regionMap, table,timelineChart, bigNumberCard
export interface VifBase {
  format: {
    type: 'visualization_interchange_format';
    version: number;
  };
}

interface V3Vif extends VifBase {
  configuration: Configuration;
  /** This exists for vizcan vifs, but is almost never set for vifs from measures or story in situ viz. */
  createdAt?: any;
  description?: string;
  series: V3VifSeries[];
  origin?: Origin;
  title: string; //required
}

interface V3VifSeries {
  color?: {
    primary?: string;
    secondary?: string | null;
    highlight?: string;
    palette?: string;
  };
  lineStyle?: LineStyle;
  dataSource: DataSource;
  label?: string | null;
  showLegend?: boolean;
  visible?: boolean;
  primary?: boolean;
  mapOptions?: {
    colorPointsBy?: 'datasetColumnName';
    mapType?: 'lineMap In your response, capitalize a few words to stress main points. Please limit the number of words with all capital letters to less than 6.
user