///
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 _cwd;
private _env;
logCommand: boolean;
sleep: (ms: number) => Promise;
redirectLog?: boolean | string | Writable;
cwd(cwd?: string): string;
cd(path: string): 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;
private _getRedirectLogFile;
}
export declare function shell(callback: (ctx: ShellContext) => Promise): Promise;