// import * as lodash from 'lodash';
import * as mongoose from 'mongoose';
import { StepResultsOverview } from './Results';


export interface Step {
  id: string | null;
  _id?: any;
  arguments: Rows[] | Argument[];
  // Index?: number;
  scenarioId?: mongoose.Types.ObjectId;
  argumentsCells: string;
  result: StepResultsOverview;
  keyword: string;
  Hidden: boolean;
  match: Match;
  text?: string[] | null;
  html: string[];
  embeddings: Embedding[];
  attachments: Attachment[];
  image: string[];
  rows?: Row[];
  rowsCells: string;
  examples: string[][];
  line: number | string;
  name?: string;
  json: string[];
  audio: string[];
  output: string[];
  video: string[];
}

export interface Argument {
  val: string;
  offset: number;
}

export interface Rows {
  rows: Row[];

}

export interface Match {
  arguments: Argument[];
  location: string;
}

export interface Embedding {
  mime_type: string;
  media: Media;
  data: string;
}

export interface Media {
  type: string;
}

export interface Attachment {
  data: string;
  type: string;
}

export interface Location {
  line: number;
  column: number;
}

export interface Row {
  cells: string[];
  line: number;
  locations: Location[];
}

// export const attachmentInitializer = (): Attachment[] => lodash.cloneDeep( [] as Attachment[] );
