import { Uri } from 'vscode' ; import { CsvEntry } from './model' ; export interface CodeReviewConfig { filename : string ; } export interface ReviewFileExportSection { group : string ; lines : CsvEntry [ ] ; } export enum Group { category = 'category' , priority = 'priority' , filename = 'filename' } export type GroupBy = keyof Pick < CsvEntry , Group . category | Group . priority | Group . filename > ; export interface ExportMap { /**
     * define the file extension name
     */ fileExtension : string ; /**
     * define weather lines of the input files will be processed externally or returned for the result in a modified way
     * E.g. CSV export needs not to be processed as a whole, they can just be appended line by line.
     * But JSON and HTML files needs to be processed outside (lines will be stored in a temp variable)
     */ storeOutside : boolean ; param outputFile writeFileHeader ( outputFile ) : void ; param outputFile param row handleData ( outputFile , row ) : CsvEntry ; param outputFile param rows handleEnd ( outputFile , rows , template ? ) : void ; } export type ExportFormat = 'html' | 'gitlab' | 'github' | 'jira' | 'json' ;