import * as fs from "fs";
import * as fse from "fs-extra";
import * as child_process from "child_process";
/**
 * Handles IO for the server.
 *
 * @todo Add tests for all these functions!
 */
export declare class HotIO {
    /**
     * Read a text file.
     */
    static readTextFile(path: string): Promise<string>;
    /**
     * Write a file stream.
     */
    static writeFileStream(path: string, stream: fs.ReadStream): fs.WriteStream;
    /**
     * Read a file and create a stream from it.
     */
    static readFileStream(path: string): fs.ReadStream;
    /**
     * Read a text file, parse it, and return the parsed JSON.
     */
    static readJSONFile(path: string): Promise<any>;
    /**
     * Read a YAML file, parse it, and return the parsed object.
     */
    static readYAMLFile(path: string): Promise<any>;
    /**
     * Get the SHA256 hash of a file.
     */
    static sha256File(path: string): Promise<string>;
    /**
     * Write to a text file.
     */
    static writeTextFile(path: string, content: string): Promise<string>;
    /**
     * Make a directory recursively.
     */
    static mkdir(path: string, options?: fs.MakeDirectoryOptions): Promise<void>;
    /**
     * Delete a file.
     */
    static rm(path: string, options?: fs.RmOptions): Promise<void>;
    /**
     * Copy files to a location.
     */
    static copyFiles(src: string, dest: string, options?: fse.CopyOptions): Promise<void>;
    /**
     * Copy a file to a location.
     */
    static copyFile(src: string, dest: string, flags?: number): Promise<void>;
    /**
     * Move a file to a location.
     */
    static moveFile(src: string, dest: string, options?: fse.MoveOptions): Promise<void>;
    /**
     * Checks if a file is at a location.
     */
    static exists(path: string): Promise<boolean>;
    /**
     * List files at a location.
     */
    static listFiles(path: string): Promise<string[]>;
    /**
     * Normalize a file path.
     */
    static normalizePath(path: string): string;
    /**
     * Execute a command.
     */
    static exec(cmd: string): Promise<string>;
    /**
     * Execute a command as a grabbable process.
     */
    static spawn(cmd: string, args: string[]): child_process.ChildProcess;
}
//# sourceMappingURL=HotIO.d.ts.map