/// import * as execa from 'execa'; import { Writable } from 'stream'; export { execa }; export declare function exec(command: string, options?: execa.Options): execa.ExecaChildProcess; export declare function exec(commands: string[], options?: execa.Options): Promise; export declare const spawn: execa.ExecaStatic; export declare class ShellContext { private _cwdStack; private _env; logCommand: boolean; sleep: (ms: number) => Promise; redirectLog?: boolean | string | Writable; readonly cwd: string; private readonly _logger; cd(dir: string): this; pushd(dir: string): this; popd(): this; exec(command: string, options?: execa.Options): execa.ExecaChildProcess; exec(commands: string[], options?: execa.Options): Promise; spawn(file: string, args?: string[], options?: execa.Options): execa.ExecaChildProcess; env(key: string): string | undefined; env(key: string, val: string | undefined): this; resetEnv(): this; private _getRedirectLogFile; private _logCmd; } export declare function shell(callback: (ctx: ShellContext) => Promise): Promise;