import { type ApiTypes, Resources } from '@datocms/cma-client'; import { type CancelablePromise } from '@datocms/rest-client-utils'; import { type OnProgressInfo } from '../utils/uploadFileOrBlobAndReturnPath'; export type OnProgressCreatingUploadObjectInfo = { type: 'CREATING_UPLOAD_OBJECT'; }; export type OnUploadProgressInfo = OnProgressInfo | OnProgressCreatingUploadObjectInfo; export type CreateUploadFromFileOrBlobSchema = Omit & { fileOrBlob: File | Blob; filename?: string; onProgress?: (info: OnUploadProgressInfo) => void; }; export type UpdateUploadFromFileOrBlobSchema = Omit & { fileOrBlob: File | Blob; filename?: string; onProgress?: (info: OnUploadProgressInfo) => void; }; export default class Upload extends Resources.Upload { /** * Create a new upload using a browser File/Blob object * * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/create */ createFromFileOrBlob(body: CreateUploadFromFileOrBlobSchema): CancelablePromise; /** * Updates an upload asset using a browser File/Blob object * * Read more: https://www.datocms.com/docs/content-management-api/resources/upload/update */ updateFromFileOrBlob(uploadId: string | ApiTypes.UploadData, body: UpdateUploadFromFileOrBlobSchema): CancelablePromise; }