import { DirectoryEntryAsync } from "./DirectoryEntryAsync";
import { FileEntryAsync } from "./FileEntryAsync";
import { Entry, Metadata } from "./filesystem";
import { FileSystemAsync } from "./FileSystemAsync";
export declare abstract class EntryAsync<T extends Entry> {
    protected fileSystemAsync: FileSystemAsync;
    entry: T;
    constructor(fileSystemAsync: FileSystemAsync, entry: T);
    get filesystem(): FileSystemAsync;
    get fullPath(): string;
    get isDirectory(): boolean;
    get isFile(): boolean;
    get name(): string;
    copyTo(parent: DirectoryEntryAsync, newName?: string): Promise<FileEntryAsync | DirectoryEntryAsync>;
    getMetadata(): Promise<Metadata>;
    getParent(): Promise<DirectoryEntryAsync>;
    moveTo(parent: DirectoryEntryAsync, newName?: string): Promise<FileEntryAsync | DirectoryEntryAsync>;
    remove(): Promise<void>;
    toURL(method?: "GET" | "POST" | "PUT" | "DELETE"): Promise<string>;
}
//# sourceMappingURL=EntryAsync.d.ts.map