import { FuseFilesystem } from './FuseFilesystem';
import { FuseFileType } from './FuseFileType';
import { IFuseFileObject } from './IFuseFileObject';
import { FuseDirectory } from './FuseDirectory';
import { TSerializable } from '@btfuse/core';
/**
 * An object representing any kind of filesystem object
 */
export declare class FuseFileObject implements IFuseFileObject<ArrayBuffer> {
    private $path;
    private $fs;
    constructor(fs: FuseFilesystem, path: string, parent?: string | FuseFileObject);
    getParent(): FuseDirectory | null;
    getPath(): string;
    get(path: string): FuseFileObject;
    getDirectory(path: string): FuseDirectory;
    getType(): Promise<FuseFileType>;
    isDirectory(): Promise<boolean>;
    isFile(): Promise<boolean>;
    getSize(): Promise<number>;
    mkdir(recursive?: boolean | undefined): Promise<boolean>;
    read(): Promise<ArrayBuffer>;
    readChunk(length: number, offset?: number): Promise<ArrayBuffer>;
    truncate(data?: TSerializable | undefined): Promise<number>;
    append(data: TSerializable): Promise<number>;
    write(data: TSerializable, offset?: number | undefined): Promise<number>;
    remove(recursive?: boolean): Promise<void>;
    exists(): Promise<boolean>;
}
