///
import { SpawnOptions } from "child_process";
export declare type LoggerFunction = (message: string) => void;
/**
* List of string arguments.
*/
export declare type CrossSpawnArgs = ReadonlyArray | undefined;
export declare type CrossSpawnOptions = SpawnOptions & {
/**
* A `Function` such as `console.log` or `debug(name)` to log some information about the
* spawned process.
*/
logger?: LoggerFunction;
/**
* A callback which mutates the error before it is rethrown. Most commonly, this is used to
* augment the error message of `ENOENT` errors to provide a more human-friendly message as to
* how to install the missing executable.
*
* @param error - The error thrown from the `spawn` function
* @param hasLogger - Whether `logger` was set
*/
updateErrorCallback?: (error: Error, hasLogger: boolean) => void;
};
/**
* Wrapper error for when the spawn function itself emits an error.
*/
export declare class CrossSpawnError extends Error {
originalError: Error;
constructor(cmd: string, args: CrossSpawnArgs, originalError: Error, stderr: string);
}
/**
* Base error class for when a process does not exit with a status code of zero.
*/
export declare abstract class ExitError extends Error {
cmd: string;
args: CrossSpawnArgs;
stdout: string;
stderr: string;
constructor(cmd: string, args: CrossSpawnArgs, message: string, stdout: string, stderr: string);
}
/**
* The error thrown when a process emits a non-zero exit code.
*/
export declare class ExitCodeError extends ExitError {
code: number;
constructor(cmd: string, args: CrossSpawnArgs, code: number, stdout: string, stderr: string);
}
/**
* The error thrown when a process exits via a signal.
*/
export declare class ExitSignalError extends ExitError {
signal: string;
constructor(cmd: string, args: CrossSpawnArgs, signal: string, stdout: string, stderr: string);
}
/**
* A wrapper around `cross-spawn`'s `spawn` function which can optionally log the command executed
* and/or change the error object via a callback.
*
* @param cmd - The command to run
*/
export declare function spawn(cmd: string, args?: CrossSpawnArgs, options?: CrossSpawnOptions): Promise;