/// <reference types="node" />
import { Spawn } from '../interfaces/spawn';
import { ChildProcess } from 'child_process';
import { CommandUtil } from '../interfaces/command-util';
import { ForceErrorImpl } from "./force-error-impl";
import { SpawnOptions2 } from "../custom-typings";
export declare class SpawnImpl extends ForceErrorImpl implements Spawn {
    cachedPassword: string;
    commandUtil: CommandUtil;
    constructor(_commandUtil: CommandUtil);
    spawnShellCommandPipelineAsync(cmdArray: string[][], options?: SpawnOptions2, cbStatusOrFinal?: (err: Error, result: string) => void, cbFinal?: (err: Error, result: string) => void): ChildProcess;
    sudoSpawnPipelineAsync(cmdArray: string[][], options?: SpawnOptions2, cbStatusOrFinal?: (err: Error, result: string) => void, cbFinal?: (err: Error, result: string) => void): ChildProcess;
    spawnShellCommandAsync(cmd: string[], options?: SpawnOptions2, cbStatusOrFinal?: (err: Error, result: string) => void, cbFinal?: (err: Error, result: string) => void): ChildProcess;
    private childCloseOrExit(code, signal, result, cbFinal);
    sudoSpawnAsync(cmd: string[], options?: SpawnOptions2, cbStatusOrFinal?: (err: Error, result: string) => void, cbFinal?: (err: Error, result: string) => void): ChildProcess;
}
