///
import { Printable } from "clime";
/**
* An ICliProxy can execute some CLI program passed to it with
* arguments. Declared as an interface here mostly so that it can be
* stubbed in tests
*/
export interface ICliProxy {
invoke(invocation: string[]): Promise;
}
/**
* Represents an error encountered by the "proxied" subprocess. When
* "printed" by the CLI framework, it will print the error message to
* stderr and exit this process with the same exit code with which the
* subprocess exited.
*/
export declare class CliProxyError extends Error implements Printable {
readonly errorCode: number;
constructor(message: string, errorCode: number);
print(stdout: NodeJS.WritableStream, stderr: NodeJS.WritableStream): void;
}
/**
* An implementation of ICliProxy that prefixes the provided invocation
* with `sudo` (or whatever other program you prefer)
*/
export declare class SudoCliProxy {
private readonly sudo;
constructor(sudo?: string);
invoke(invocation: string[]): Promise;
}