import { FuseFileObject } from "./FuseFileObject";
import { FuseFileType } from "./FuseFileType";
import { IFuseFileObject } from "./IFuseFileObject";
import { TSerializable } from '@btfuse/core';
/**
 * Wrapper around a FuseFileObject when it's known to be
 * representing a directory. This wrapper will provide better
 * type details
 */
export declare class FuseDirectory implements IFuseFileObject<string[]> {
    private $fileObj;
    constructor(obj: 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<string[]>;
    readChunk(length: number, offset?: number | undefined): Promise<string[]>;
    truncate(data?: TSerializable | undefined): Promise<number>;
    append(data: TSerializable): Promise<number>;
    write(data: TSerializable, offset?: number | undefined): Promise<number>;
    remove(recursive?: boolean | undefined): Promise<void>;
    exists(): Promise<boolean>;
}
