import { Stats } from 'fs';
import { File, FileInfo, Fs } from '../type';
/**
 * OsFileInfo implements FileInfo for Node.js fs.Stats
 */
export declare class OsFileInfo implements FileInfo {
    private stats;
    private _name;
    constructor(stats: Stats, _name: string);
    name(): string;
    size(): number;
    mode(): number;
    modTime(): Date;
    isDir(): boolean;
    sys(): any;
}
/**
 * OsFile implements File for Node.js file handles
 */
export declare class OsFile implements File {
    private filePath;
    private flags;
    private handle;
    private closed;
    private position;
    constructor(filePath: string, flags?: string);
    ensureOpen(): Promise<void>;
    close(): Promise<void>;
    read(buffer: Uint8Array): Promise<{
        bytesRead: number;
        buffer: Uint8Array;
    }>;
    readAt(buffer: Uint8Array, offset: number): Promise<{
        bytesRead: number;
        buffer: Uint8Array;
    }>;
    seek(offset: number, whence: number): Promise<number>;
    write(buffer: Uint8Array): Promise<{
        bytesWritten: number;
        buffer: Uint8Array;
    }>;
    writeAt(buffer: Uint8Array, offset: number): Promise<{
        bytesWritten: number;
        buffer: Uint8Array;
    }>;
    name(): string;
    readdir(count: number): Promise<FileInfo[]>;
    readdirnames(n: number): Promise<string[]>;
    stat(): Promise<FileInfo>;
    sync(): Promise<void>;
    truncate(size: number): Promise<void>;
    writeString(s: string): Promise<{
        bytesWritten: number;
    }>;
}
/**
 * OsFs implements Fs for Node.js file system operations
 */
export declare class OsFs implements Fs {
    create(name: string): Promise<File>;
    mkdir(name: string, perm: number): Promise<void>;
    mkdirAll(dirPath: string, perm: number): Promise<void>;
    open(name: string): Promise<File>;
    openFile(name: string, flag: number, perm: number): Promise<File>;
    remove(name: string): Promise<void>;
    removeAll(dirPath: string): Promise<void>;
    rename(oldname: string, newname: string): Promise<void>;
    stat(name: string): Promise<FileInfo>;
    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>;
}
/**
 * Create a new OsFs instance
 */
export declare function newOsFs(): OsFs;
//# sourceMappingURL=osfs.d.ts.map