import { FusePlugin, TSerializable } from '@btfuse/core';
import { FuseFileObject } from './FuseFileObject';
import { FuseFileType } from './FuseFileType';
import { FuseDirectory } from './FuseDirectory';
export declare class FuseFilesystem extends FusePlugin {
    protected _getID(): string;
    get(path: string): FuseFileObject;
    getDirectory(path: string): FuseDirectory;
    getFileType(file: FuseFileObject): Promise<FuseFileType>;
    getSize(file: FuseFileObject): Promise<number>;
    mkdir(file: FuseFileObject, recursive?: boolean): Promise<boolean>;
    read(file: FuseFileObject, length: number, offset: number): Promise<ArrayBuffer>;
    private $createDataPacket;
    truncate(file: FuseFileObject, data: TSerializable): Promise<number>;
    append(file: FuseFileObject, data: TSerializable): Promise<number>;
    write(file: FuseFileObject, data: TSerializable, offset?: number): Promise<number>;
    remove(file: FuseFileObject, recursive?: boolean): Promise<void>;
    exists(file: FuseFileObject): Promise<boolean>;
}
