/// 
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) => Promise;
/**
 * executes a given command async and silent
 * @param commandStringArg
 */
export declare let execSilent: (commandStringArg: string) => Promise;
/**
 * executes a command and allws you to stream output
 */
export declare let execStreaming: (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) => Promise<{}>;
/**
 * get a path
 */
export declare let which: (cmd: string) => Promise;