/// <reference types="node" />
/// <reference types="node" />
/**
 * 使用 FS 对象实现文件操作。 Yao 提供 System, DSL, Script 三个空间,
 * System 用于应用数据操作,
 * DSL 用于DSL文件操作,
 * Script 用于脚本文件操作;
 * DSL 和 Script 只能用于 stuido 脚本。
 *
 * let fs = new FS("system");
 *
 * let data = fs.ReadFile("/f1.txt"); // /data/app/data/f1.txt
 */
export declare class FS {
    space: "data" | "app" | string;
    isLocal: boolean;
    basePath: string;
    /**
     * data	/data/app/data	应用数据
     * app	/data/app	应用目录
     * system	/data/app/data	应用数据
     * dsl	/data/app	除 scripts 外的所有目录(仅 Studio 脚本可用)
     * script	/data/app/scirpts	脚本目录(仅 Studio 脚本可用)
     * app 应用目录
     * @param space
     */
    constructor(space: "data" | "app" | string);
    ReadFile(src: string): string;
    ReadFileBuffer(src: string): Buffer;
    WriteFileBase64(src: string, str: any): any;
    WriteFile(src: string, str: any, mode?: number | string): any;
    WriteFileBuffer(src: string, buffer: string | NodeJS.ArrayBufferView, mode?: number): any;
    ReadDir(src: string, recursive?: boolean): string[];
    Mkdir(src: string, mode?: number | string): any;
    /**
     * 根据目录，创建必须的目录
     * @param src 目录
     * @param mode 目录权限
     * @returns
     */
    MkdirAll(src: string, mode?: number | string): string;
    /**
     * 创建一个临时目录，该目录具有唯一的、随机生成的名称，并且只能由当前用户访问
     * @param src 目录
     * @param pattern 指定临时目录的前缀
     * @returns 创建的临时目录的路径
     */
    MkdirTemp(src: string, pattern?: string): string;
    Exists(src: string): boolean;
    IsDir(src: string): boolean;
    IsFile(src: string): boolean;
    Remove(src: string): void;
    RemoveAll(src: string): void;
    Chmod(src: string, mode: number | string): void;
    BaseName(src: string): string;
    DirName(src: string): string;
    ExtName(src: string): string;
    MimeType(src: string): string;
    Mode(src: string): number;
    Size(src: string): number;
    ModTime(src: string): Date;
    Copy(src: string, target: string): void;
    Merge(fileList: string[], str: string): any;
    Move(src: string, target: string): void;
}
