///
import { ChildProcess } from 'child_process';
/**
* interface for ExecResult
*/
export interface IExecResult {
exitCode: number;
stdout: string;
}
/**
* interface for streaming ExecResult
*/
export interface IExecResultStreaming {
childProcess: ChildProcess;
finalPromise: Promise;
}
/**
* executes a given command async
* @param commandStringArg
*/
export declare let exec: (commandStringArg: string, silentArg?: boolean, strictArg?: boolean) => Promise;
/**
* executes a given command async and silent
* @param commandStringArg
*/
export declare let execSilent: (commandStringArg: string) => Promise;
/**
* executes strict, meaning it rejects the promise if something happens
*/
export declare let execStrict: (commandStringArg: string) => Promise;
/**
* executes a command and allws you to stream output
*/
export declare let execStreaming: (commandStringArg: string, silentArg?: boolean) => {
childProcess: ChildProcess;
finalPromise: Promise;
};
export declare let execStreamingSilent: (commandStringArg: string) => {
childProcess: ChildProcess;
finalPromise: Promise;
};
/**
* executes a command and returns promise that will be fullfilled once an putput line matches RegexArg
* @param commandStringArg
* @param regexArg
*/
export declare let execAndWaitForLine: (commandStringArg: string, regexArg: RegExp, silentArg?: boolean) => Promise<{}>;
export declare let execAndWaitForLineSilent: (commandStringArg: string, regexArg: RegExp) => void;
/**
* get a path
*/
export declare let which: (cmd: string) => Promise;