// Type definitions for istanbul-reports 3.0 // Project: https://github.com/istanbuljs/istanbuljs, https://istanbul.js.org // Definitions by: Jason Cheatham // Elena Shcherbakova // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.4 import { Node, ReportBase } from 'istanbul-lib-report'; export function create(name: T, options?: Partial): ReportBase; export interface FileOptions { file: string; } export interface ProjectOptions { projectRoot: string; } export interface ReportOptions { clover: CloverOptions; cobertura: CoberturaOptions; 'html-spa': HtmlSpaOptions; html: HtmlOptions; json: JsonOptions; 'json-summary': JsonSummaryOptions; lcov: LcovOptions; lcovonly: LcovOnlyOptions; none: never; teamcity: TeamcityOptions; text: TextOptions; 'text-lcov': TextLcovOptions; 'text-summary': TextSummaryOptions; } export type ReportType = keyof ReportOptions; export interface CloverOptions extends FileOptions, ProjectOptions {} export interface CoberturaOptions extends FileOptions, ProjectOptions {} export interface HtmlSpaOptions extends HtmlOptions { metricsToShow: Array<'lines' | 'branches' | 'functions' | 'statements'>; } export interface HtmlOptions { verbose: boolean; skipEmpty: boolean; subdir: string; linkMapper: LinkMapper; } export type JsonOptions = FileOptions; export type JsonSummaryOptions = FileOptions; export interface LcovOptions extends FileOptions, ProjectOptions {} export interface LcovOnlyOptions extends FileOptions, ProjectOptions {} export interface TeamcityOptions extends FileOptions { blockName: string; } export interface TextOptions extends FileOptions { maxCols: number; skipEmpty: boolean; skipFull: boolean; } export type TextLcovOptions = ProjectOptions; export type TextSummaryOptions = FileOptions; export interface LinkMapper { getPath(node: string | Node): string; relativePath(source: string | Node, target: string | Node): string; assetPath(node: Node, name: string): string; }