import { ISystemInfo } from "./doc/ISystemInfo";
/**
 * This enum represents the possible results from isGuiAvailable.
 */
export declare enum GuiResult {
    /** A GUI is available */
    GUI_AVAILABLE = 0,
    /** No GUI because this is an SSH connection. */
    NO_GUI_SSH = 1,
    /** No GUI because The $DISPLAY environment variable is not set. */
    NO_GUI_NO_DISPLAY = 2
}
/**
 * A collection of utilities related to the running process.
 * @export
 * @class ProcessUtils
 */
export declare class ProcessUtils {
    /**
     * Process utility to wrap callback process routines into promises
     * Turn nextTick into a promise to prevent nesting
     * @static
     * @param {() => void} callback - called before promise is resolved
     * @param {...any[]} args - arguments passed to the callback
     * @returns {Promise<void>} - fulfilled whenever callback is invoked
     * @memberof ProcessUtils
     */
    static nextTick(callback: (...args: any[]) => void, ...args: any[]): Promise<void>;
    /**
     * Is a Graphical User Interface available in the environment in which
     * the current command is running?
     *
     * @returns {boolean} - True if GUI. False when no GUI.
     */
    static isGuiAvailable(): GuiResult;
    /**
     * Get some basic information about the system
     */
    static getBasicSystemInfo(): ISystemInfo;
    /**
     * Open a file or URL in the default application associated with its file
     * extension or URL protocol. This method is only supported in graphical
     * environments.
     * @param pathOrUrl File path or Internet URL to open
     */
    static openInDefaultApp(pathOrUrl: string): void;
    /**
     * Open a file in the best editor that can be found in the current
     * environment. In a graphical environment, the default application
     * associated with its file extension will be launched. In a command-line
     * environment, the file will be opened in vi.
     * @param filePath - File path to edit
     * @param editor - Program name of editor to override the default (e.g., notepad)
     * @param sync - Boolean where true == synchronous and false == asynchronous
     */
    static openInEditor(filePath: string, editor?: string, sync?: boolean): void;
}
//# sourceMappingURL=ProcessUtils.d.ts.map