import type { FmFile } from "../shared/types.js"; export interface UploadFileData { name: string; type: string; tags?: string[]; location?: { folderId: string; }; [key: string]: any; } export interface UploadJob { id: string; fileName: string; status: "pending" | "uploading" | "completed" | "failed"; progress: { sent: number; total: number; percentage: number; }; error?: string; result?: FmFile; } export interface FileUploaderViewModel { jobs: UploadJob[]; overallProgress: { sent: number; total: number; percentage: number; }; isUploading: boolean; completedCount: number; failedCount: number; } export interface BatchUploadOptions { concurrency?: number; strategy?: "fail-fast" | "continue"; } export interface IFileUploader { vm: FileUploaderViewModel; upload(file: File, data: UploadFileData): Promise; uploadMany(files: Array<{ file: File; data: UploadFileData; }>, options?: BatchUploadOptions): Promise; abort(jobId: string): void; clear(): void; } export declare const FileUploader: import("@webiny/di").Abstraction; export declare namespace FileUploader { type Interface = IFileUploader; }