///
///
import { Dirent, Stats } from "fs";
import { SearchTextResult, WalkOptions } from "./fileSystem";
import { Pattern } from "./matcher";
/**
* 获取文件或文件夹的属性
* @param path 要获取的路径
* @param resolveLink 如果是软链接,是否解析链接引用的路径属性
*/
export declare function getStat(path: string, resolveLink?: boolean): Stats;
/**
* 判断指定的路径是否存在
* @param path 要判断的路径
* @returns 如果路径不存在,则返回 `false`,否则返回 `true`
*/
export declare function exists(path: string): boolean;
/**
* 判断指定的文件是否存在
* @param path 要判断的路径
* @returns 如果文件不存在或路径不是一个文件,则返回 `false`,否则返回 `true`
*/
export declare function existsFile(path: string): boolean;
/**
* 判断指定的文件夹是否存在
* @param path 要判断的路径
* @returns 如果文件夹不存在或路径不是一个文件,则返回 `false`,否则返回 `true`
*/
export declare function existsDir(path: string): boolean;
/**
* 如果指定的路径不存在则直接返回,否则返回重命名后的新路径
* @param path 要测试的文件或文件夹路径
* @param append 如果路径已存在则添加的文件名后缀,其中的数字会递增直到文件不存在
*/
export declare function ensureNotExists(path: string, append?: string): string;
/**
* 如果路径所在的文件夹不存在则创建一个
* @param path 相关的路径
*/
export declare function ensureDirExists(path: string): void;
/**
* 创建一个文件夹
* @param path 要创建的文件夹路径
*/
export declare function createDir(path: string): void;
/**
* 创建一个临时文件夹
* @param parent 临时文件夹的根目录
* @returns 返回已创建文件夹路径
*/
export declare function createTempDir(parent?: string): any;
/**
* 删除指定的文件夹
* @param path 要删除的文件夹路径
* @param recursive 是否删除所有所有子文件夹和文件,如果为 `false` 则只删除空文件夹
* @returns 返回删除的文件数
*/
export declare function deleteDir(path: string, recursive?: boolean): number;
/**
* 清空指定的文件夹
* @param path 要清空的文件夹路径
* @returns 返回删除的文件数
*/
export declare function cleanDir(path: string): number;
/**
* 如果路径所在的文件夹是空的则删除所在文件夹
* @param path 文件夹内的文件路径
* @returns 返回已删除的文件夹数,如果文件夹不空,返回 `0`
*/
export declare function deleteParentDirIfEmpty(path: string): number;
/**
* 删除指定的文件或软链接
* @param path 要删除的文件路径
* @returns 如果删除成功则返回 `true`,否则说明文件不存在,返回 `false`
*/
export declare function deleteFile(path: string): boolean;
/**
* 深度遍历指定的路径并执行回调
* @param path 要遍历的文件或文件夹路径
* @param options 遍历的选项
*/
export declare function walk(path: string, options: WalkOptions, /**@internal */ _stats?: Dirent | Stats): void;
/**
* 遍历通配符匹配的所有文件
* @param pattern 要匹配的模式
* @param callback 遍历的回调函数
* @param baseDir 查找的基文件夹路径
* @param followLinks 是否展开链接,默认 `true`
*/
export declare function walkGlob(pattern: Pattern, callback: (path: string) => any, baseDir?: string, followLinks?: boolean): void;
/**
* 查找匹配指定模式的所有文件
* @param pattern 要匹配的模式
* @param baseDir 查找的基文件夹路径
* @param followLinks 是否展开链接,默认 `true`
* @returns 返回所有匹配文件的路径
*/
export declare function glob(pattern: Pattern, baseDir?: string, followLinks?: boolean): string[];
/**
* 获取文件夹内的所有文件和文件夹组成的数组
* @param path 要读取的文件夹路径
* @param withFileTypes 是否包含文件类型信息
*/
export declare function readDir(path: string, withFileTypes: true): Dirent[];
/**
* 获取文件夹内的所有文件和文件夹组成的数组
* @param path 要读取的文件夹路径
* @param withFileTypes 是否包含文件类型信息
*/
export declare function readDir(path: string, withFileTypes?: boolean): string[];
/**
* 读取指定文件的二进制内容
* @param path 要读取的文件路径
*/
export declare function readFile(path: string): Buffer;
/**
* 读取指定文件的文本内容
* @param path 要读取的文件路径
* @param encoding 文件的编码
*/
export declare function readFile(path: string, encoding: BufferEncoding): string;
/**
* 使用 UTF-8 编码读取指定的文本文件
* @param path 要读取的文件路径
* @param throwIfNotFound 如果文件不存在,是否抛出异常,如果值为 `false`,则文件不存在时返回 `null`
*/
export declare function readText(path: string, throwIfNotFound: false): string | null;
/**
* 使用 UTF-8 编码读取指定的文本文件
* @param path 要读取的文件路径
* @param throwIfNotFound 如果文件不存在,是否抛出异常,如果值为 `false`,则文件不存在时返回 `null`
*/
export declare function readText(path: string, throwIfNotFound?: boolean): string;
/**
* 将内容写入指定的文件
* @param path 要写入的文件路径
* @param data 要写入的文件数据
* @param overwrite 是否允许覆盖现有的目标
* @returns 如果写入成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function writeFile(path: string, data: string | Buffer, overwrite?: boolean): boolean;
/**
* 在指定文件末尾追加内容
* @param path 要创建的文件路径
* @param data 要写入的文件数据
*/
export declare function appendFile(path: string, data: string | Buffer): void;
/**
* 读取指定的 JSON 文件
* @param path 要读取的文件路径
*/
export declare function readJSON(path: string): any;
/**
* 保存指定的 JSON 文件
* @param path 要保存的文件路径
* @param data 要保存的 JSON 数据
*/
export declare function writeJSON(path: string, data: any): void;
/**
* 搜索指定文件
* @param path 要搜索的文件路径
* @param search 搜索的源
* @param limit 限制匹配的数目
*/
export declare function searchText(path: string, search: string | RegExp, limit?: number): SearchTextResult[];
/**
* 搜索匹配的文件
* @param pattern 要搜索的通配符
* @param search 搜索的源
* @param baseDir 搜索的根目录
* @param limit 限制匹配的数目
* @param followLinks 是否展开链接,默认 `false`
*/
export declare function searchAllText(pattern: string, search: string | RegExp, baseDir?: string, limit?: number, followLinks?: boolean): SearchTextResult[];
/**
* 替换匹配的文件
* @param path 要搜索的文件路径
* @param search 替换的源
* @param replacer 替换的目标
* @returns 返回受影响的文件数
*/
export declare function replaceText(path: string, search: string | RegExp, replacer: string | ((source: string, ...args: any[]) => string)): boolean;
/**
* 替换匹配的文件
* @param pattern 要搜索的通配符
* @param search 替换的源
* @param replacer 替换的目标
* @param baseDir 搜索的根目录
* @param followLinks 是否展开链接,默认 `false`
* @returns 返回受影响的文件数
*/
export declare function replaceAllText(pattern: string, search: string | RegExp, replacer: string | ((source: string, ...args: any[]) => string), baseDir?: string, followLinks?: boolean): number;
/**
* 创建一个软链接
* @param path 要创建的文件路径
* @param target 要链接的目标路径
* @param overwrite 是否覆盖已有的目标
* @returns 如果创建成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function createLink(path: string, target: string, overwrite?: boolean): boolean;
/**
* 读取软链接的实际地址
* @param path 要读取的软链接路径
*/
export declare function readLink(path: string): string;
/**
* 复制指定的文件夹
* @param src 要复制的源路径
* @param dest 要复制的目标路径
* @param overwrite 是否覆盖已有的目标
* @param preserveLinks 是否保留链接
* @param ignore 忽略的通配符
* @returns 返回已复制的文件数
*/
export declare function copyDir(src: string, dest: string, overwrite?: boolean, preserveLinks?: boolean, ignore?: Pattern): number;
/**
* 复制指定的文件
* @param src 要复制的源路径
* @param dest 要复制的目标路径
* @param overwrite 是否覆盖已有的目标
* @returns 如果复制成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function copyFile(src: string, dest: string, overwrite?: boolean): boolean;
/**
* 复制指定的软链接
* @param src 要复制的源路径
* @param dest 要复制的目标路径
* @param overwrite 是否覆盖已有的目标
* @returns 如果复制成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function copyLink(src: string, dest: string, overwrite?: boolean): boolean;
/**
* 移动指定的文件夹
* @param src 要移动的源路径
* @param dest 要移动的目标路径
* @param overwrite 是否允许覆盖现有的目标
* @param preserveLinks 是否保留链接
*/
export declare function moveDir(src: string, dest: string, overwrite?: boolean, preserveLinks?: boolean): void;
/**
* 移动指定的文件
* @param src 要移动的源路径
* @param dest 要移动的目标路径
* @param overwrite 是否允许覆盖现有的目标
* @returns 如果移动成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function moveFile(src: string, dest: string, overwrite?: boolean): boolean;
/**
* 移动指定的软链接
* @param src 要移动的源路径
* @param dest 要移动的目标路径
* @param overwrite 是否允许覆盖现有的目标
* @returns 如果移动成功则返回 `true`,否则说明目标已存在,返回 `false`
*/
export declare function moveLink(src: string, dest: string, overwrite?: boolean): boolean;
/**
* 获取指定路径区分大小写的实际路径,如果地址不存在则返回 `null`
* @param path 原路径
*/
export declare function getRealPath(path: string): string;