import { Fs, File as IFile, FileInfo as IFileInfo } from '../type';
export declare class BaseFs implements Fs {
    private readonly fs;
    private readonly roots;
    constructor(fs: Fs, roots: string[]);
    private toAbsolutePath;
    private isSameRootedPath;
    stat(name: string): Promise<IFileInfo>;
    open(name: string): Promise<IFile>;
    private openInternal;
    private getRoot;
    private openDir;
    create(name: string): Promise<IFile>;
    mkdir(name: string, perm: number): Promise<void>;
    mkdirAll(path: string, perm: number): Promise<void>;
    openFile(name: string, flag: number, perm: number): Promise<IFile>;
    remove(name: string): Promise<void>;
    removeAll(path: string): Promise<void>;
    rename(oldname: string, newname: string): Promise<void>;
    name(): string;
    chmod(name: string, mode: number): Promise<void>;
    chown(name: string, uid: number, gid: number): Promise<void>;
    chtimes(name: string, atime: Date, mtime: Date): Promise<void>;
}
export declare function newBaseFs(fs: Fs, roots: string[]): BaseFs;
