import type { ConflictResolution, DocumentTypeIcon, FileUploadProgress } from "@powerhousedao/reactor-browser";
import type { Node } from "document-drive";
import type { UploadFileItemProps } from "../upload-file-item/upload-file-item.js";
export type UploadTracker = {
    id: string;
    fileName: string;
    fileSize: string;
    status: "pending" | "uploading" | "success" | "failed" | "conflict" | "unsupported-document-type";
    progress: number;
    errorDetails?: string;
    fileNode?: Node;
    documentType?: DocumentTypeIcon;
    file?: File;
    parentNode?: Node;
    duplicateType?: "id" | "name";
};
export type OnAddFileWithProgress = (file: File, parent: Node | undefined, onProgress?: (progress: FileUploadProgress) => void, resolveConflict?: ConflictResolution) => Promise<Node | undefined> | Node | undefined;
export declare function generateId(): string;
export declare function formatFileSize(bytes: number): string;
export declare function mapProgressStageToStatus(stage: FileUploadProgress["stage"]): UploadTracker["status"];
export declare function mapUploadsToFileItems(uploadsArray: (UploadTracker | undefined)[], removeUpload: (uploadId: string) => void, setSelectedNodeFn?: (nodeOrNodeSlug: Node | string | undefined) => void, onConflictResolution?: (uploadId: string) => void): UploadFileItemProps[];
//# sourceMappingURL=utils.d.ts.map