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[]);
    /**
     * Convert relative path to absolute path using the first root
     * In BaseFs context, all paths are relative to the BaseFs root, even if they start with "/"
     */
    private toAbsolutePath;
    /**
     * Stat returns file info with opener function
     */
    stat(name: string): Promise<IFileInfo>;
    /**
     * Open opens a file or directory
     */
    open(name: string): Promise<IFile>;
    /**
     * Private method to open a file internally
     */
    private openInternal;
    /**
     * Get the matching root path for a given name
     */
    private getRoot;
    /**
     * Private method to open a directory
     */
    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>;
}
/**
 * Creates a new BaseFs instance
 * TypeScript version of Go's NewBaseFs function
 */
export declare function newBaseFs(fs: Fs, roots: string[]): BaseFs;
//# sourceMappingURL=basefs.d.ts.map