/**
 * Interface for cp/mv options
 */
export interface CopyOptions {
    /** Optional. Whether to recursively copy all subdirectories. Defaults to false */
    recursive?: boolean;
    /** Optional. Whether to overwrite existing files in the destination. Defaults to true */
    force?: boolean;
}
/**
 * Interface for cp/mv options
 */
export interface MoveOptions {
    /** Optional. Whether to overwrite existing files in the destination. Defaults to true */
    force?: boolean;
}
/**
 * Copies a file or folder.
 * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
 *
 * @param     source    source path
 * @param     dest      destination path
 * @param     options   optional. See CopyOptions.
 */
export declare function cp(source: string, dest: string, options?: CopyOptions): Promise<void>;
/**
 * Moves a path.
 *
 * @param     source    source path
 * @param     dest      destination path
 * @param     options   optional. See MoveOptions.
 */
export declare function mv(source: string, dest: string, options?: MoveOptions): Promise<void>;
/**
 * Remove a path recursively with force
 *
 * @param inputPath path to remove
 */
export declare function rmRF(inputPath: string): Promise<void>;
/**
 * Make a directory.  Creates the full path with folders in between
 * Will throw if it fails
 *
 * @param   fsPath        path to create
 * @returns Promise<void>
 */
export declare function mkdirP(fsPath: string): Promise<void>;
/**
 * Returns path of a tool had the tool actually been invoked.  Resolves via paths.
 * If you check and the tool does not exist, it will throw.
 *
 * @param     tool              name of the tool
 * @param     check             whether to check if tool exists
 * @returns   Promise<string>   path to tool
 */
export declare function which(tool: string, check?: boolean): Promise<string>;