///
///
import urlMod from "url";
import { GetText } from "./get-text";
import { Reporter } from "./reporter";
import { RichProcessCov } from "./spawn-inspected";
interface Watermarks {
lines: [number, number];
functions: [number, number];
branches: [number, number];
statements: [number, number];
}
export interface FileConfig {
reporters?: ReadonlyArray;
globs?: ReadonlyArray;
coverageDir?: string;
waterMarks?: Watermarks;
}
export interface CliConfig {
reporters?: ReadonlyArray;
globs?: ReadonlyArray;
coverageDir?: string;
command: ReadonlyArray;
}
export interface ResolvedConfig {
reporters: ReadonlyArray;
globs: ReadonlyArray;
coverageDir: string;
waterMarks: Watermarks;
command: ReadonlyArray;
}
export interface MessageAction {
action: "message";
message: string;
error?: Error;
}
export interface RunAction {
action: "run";
config: ResolvedConfig;
}
export declare type CliAction = MessageAction | RunAction;
export declare type ParseArgsResult = MessageAction | {
action: "run";
config: CliConfig;
};
/**
* Executes the c88 CLI
*
* @param args CLI arguments
* @param cwd Current working directory
* @param proc Current process
*/
export declare function execCli(args: string[], cwd: string, proc: NodeJS.Process): Promise;
export declare function report(reporter: Reporter, processCovs: ReadonlyArray, outStream: NodeJS.WritableStream, outDir: Readonly, getText?: GetText): Promise;
export declare function getAction(args: string[], cwd: string): Promise;
export declare function parseArgs(args: string[]): ParseArgsResult;
export {};