import type { Node } from 'prosemirror-model';
import type { EditorView } from 'prosemirror-view';
import { type FileUploadHandler, type UploadSuccessItem } from "../../../utils/upload.js";
import type { WidgetDescriptor } from "../WidgetDecoration/index.js";
export declare abstract class FilesBatchUploadProcess {
    protected readonly view: EditorView;
    protected readonly files: readonly File[];
    protected readonly uploadHandler: FileUploadHandler;
    protected skeletonDescriptor?: WidgetDescriptor;
    constructor(view: EditorView, files: readonly File[], uploadHandler: FileUploadHandler);
    run(): Promise<void>;
    protected insertSkeleton(): Promise<void>;
    protected abstract createSkeleton(): WidgetDescriptor | Promise<WidgetDescriptor>;
    protected batchUpload(): Promise<void>;
    protected abstract createPMNode(res: UploadSuccessItem): Promise<Node>;
    protected removeSkeleton(): void;
}
