import { File as IFile, Fs, FileInfo as IFileInfo } from '../type';
import { FileMeta } from './filemeta';
import { FileInfo } from './fileinfo';
export declare class File implements IFile {
    private readonly file;
    private readonly fileMeta;
    private fs;
    private readonly _isDir;
    constructor(file: IFile | null, fileMeta: FileMeta, fs: Fs, isDir?: boolean);
    isNop(): boolean;
    close(): Promise<void>;
    readDir(count: number): Promise<FileInfo[]>;
    meta(): FileMeta;
    private joinPath;
    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<IFileInfo[]>;
    readdirnames(n: number): Promise<string[]>;
    stat(): Promise<IFileInfo>;
    sync(): Promise<void>;
    truncate(size: number): Promise<void>;
    writeString(s: string): Promise<{
        bytesWritten: number;
    }>;
}
export declare function newFile(file: IFile, filename: string, fs: Fs): File;
export declare function newFileWithMeta(file: IFile, meta: FileMeta, fs: Fs): File;
export declare function newDirFileWithMeta(file: IFile, meta: FileMeta, fs: Fs): File;
export declare function newDirFile(file: IFile, filename: string, fs: Fs): File;
