/// <reference types="node" />
import { Positive, SafeJson, Spawn } from '..';
import { ChildProcess } from 'child_process';
import { SpawnOptions2 } from '../custom-typings';
import { ForceErrorImpl } from './force-error-impl';
import { CommandUtil } from '..';
import { ChildProcessSpawn } from '../interfaces/child-process-spawn';
export declare class SpawnImpl extends ForceErrorImpl implements Spawn {
    commandUtil: CommandUtil;
    private safeJson;
    private positive;
    childProcessSpawn: ChildProcessSpawn;
    private cachedPassword;
    constructor(commandUtil: CommandUtil, safeJson: SafeJson, positive: Positive, childProcessSpawn: ChildProcessSpawn);
    installAptitudePackages(packageNames: string[], cb: (err: Error, result: string) => void): void;
    removeAptitudePackages(packageNames: string[], cb: (err: Error, result: string) => void): void;
    private validate_spawnShellCommandAsync_args;
    spawnShellCommandAsync(_cmd: string[], _options: SpawnOptions2, _cbStatus: (err: Error, result: string) => void, _cbFinal: (err: Error, result: string) => void, _cbDiagnostic?: (message: string) => void): ChildProcess;
    private _spawnShellCommandAsync;
    private static childCloseOrExit;
    sudoSpawnAsync(_cmd: string[], _options: SpawnOptions2, _cbStatus: (err: Error, result: string) => void, _cbFinal: (err: Error, result: string) => void, _cbDiagnostic?: (message: string) => void): ChildProcess;
}
