import { AbstractAccessor } from "./AbstractAccessor";
import { AbstractEntry } from "./AbstractEntry";
import { DirectoryEntry, DirectoryEntryCallback, DirectoryReader, EntriesCallback, EntryCallback, ErrorCallback, FileEntry, FileEntryCallback, Flags, VoidCallback } from "./filesystem";
import { FileSystemObject } from "./FileSystemObject";
import { FileSystemParams } from "./FileSystemParams";
export declare abstract class AbstractDirectoryEntry<T extends AbstractAccessor> extends AbstractEntry<T> implements DirectoryEntry {
    isDirectory: boolean;
    isFile: boolean;
    constructor(params: FileSystemParams<T>);
    copyTo(parent: DirectoryEntry, newName?: string | undefined, successCallback?: EntryCallback | undefined, errorCallback?: ErrorCallback | undefined): void;
    createReader(): DirectoryReader;
    delete(): Promise<void>;
    getDirectory(path: string, options?: Flags | undefined, successCallback?: DirectoryEntryCallback | undefined, errorCallback?: ErrorCallback | undefined): void;
    getFile(path: string, options?: Flags, successCallback?: FileEntryCallback, errorCallback?: ErrorCallback): void;
    list(successCallback: EntriesCallback, errorCallback?: ErrorCallback): void;
    moveTo(parent: DirectoryEntry, newName?: string | undefined, successCallback?: EntryCallback | undefined, errorCallback?: ErrorCallback | undefined): void;
    remove(successCallback: VoidCallback, errorCallback?: ErrorCallback | undefined): void;
    removeRecursively(successCallback: VoidCallback, errorCallback?: ErrorCallback | undefined): void;
    protected createEntries(objects: FileSystemObject[]): AbstractEntry<T>[];
    protected hasChild(): Promise<boolean>;
    protected registerObject(fullPath: string, isFile: boolean): Promise<FileSystemObject>;
    protected abstract createEntry(obj: FileSystemObject): AbstractEntry<T>;
    protected abstract toFileEntry(obj: FileSystemObject): FileEntry;
}
//# sourceMappingURL=AbstractDirectoryEntry.d.ts.map