import { AbstractAccessor } from "./AbstractAccessor";
import { DirectoryEntry, DirectoryEntryCallback, Entry, EntryCallback, ErrorCallback, MetadataCallback, URLCallback, VoidCallback } from "./filesystem";
import { FileSystemObject } from "./FileSystemObject";
import { FileSystemParams } from "./FileSystemParams";
export declare abstract class AbstractEntry<T extends AbstractAccessor> implements Entry {
    params: FileSystemParams<T>;
    abstract isDirectory: boolean;
    abstract isFile: boolean;
    constructor(params: FileSystemParams<T>);
    get filesystem(): import("./filesystem").FileSystem;
    get fullPath(): string;
    get name(): string;
    getMetadata(successCallback: MetadataCallback, errorCallback?: ErrorCallback): void;
    getParent(successCallback: DirectoryEntryCallback, errorCallback?: ErrorCallback | undefined): void;
    toURL(urlCallback: URLCallback, errorCallback?: ErrorCallback, method?: "GET" | "POST" | "PUT" | "DELETE"): void;
    abstract copyTo(parent: DirectoryEntry, newName?: string | undefined, successCallback?: EntryCallback | undefined, errorCallback?: ErrorCallback | undefined): void;
    abstract moveTo(parent: DirectoryEntry, newName?: string | undefined, successCallback?: EntryCallback | undefined, errorCallback?: ErrorCallback | undefined): void;
    abstract remove(successCallback: VoidCallback, errorCallback?: ErrorCallback | undefined): void;
    protected canCopy(parent: DirectoryEntry, newName?: string | undefined, errorCallback?: ErrorCallback | undefined): boolean;
    protected abstract toDirectoryEntry(obj: FileSystemObject): DirectoryEntry;
}
//# sourceMappingURL=AbstractEntry.d.ts.map