export type UploadUrl = { uploadUrl: string; partNum: number; }; export declare const enum FILE_UPLOAD_STATUS { INIT = 1, UPLOADING = 2, ALL_UPLOADED = 3, MERGING = 4, FINISHED = 5, FAILED = 6, PAUSED = 7, CANCELED = 8 } export type UploadableFile = { raw?: File; uploadId: string; fileName: string; chunkSize: number; partCount: number; percentage: number; expiryTime?: string; uploadStatus: number[]; failSeq: UploadUrl[]; uploadUrls: UploadUrl[]; completeSeq: UploadUrl[]; fileStatus: FILE_UPLOAD_STATUS; cancelControllers: AbortController[]; }; export type FileInfo = { fileName: string; isFolder?: boolean; }; type UploadInfoErrorResult = { status: false; reason?: string; }; type UploadInfoSuccessResult = { status: true; uploadInfo: { uploadUrls: UploadUrl[]; uploadId: string; }; }; type UploadInfoResult = UploadInfoErrorResult | UploadInfoSuccessResult; type OnBeforeUploadErrorResult = { status: false; reason?: string; }; type OnBeforeUploadSuccessResult = { status: true; }; type OnBeforeUploadResult = OnBeforeUploadErrorResult | OnBeforeUploadSuccessResult; export type UploadManager = { getUploadUrls: (fileName: string, partCount: number) => Promise; onBeforeUpload?: (file: File, fileName: string) => Promise | OnBeforeUploadResult | boolean; onCancelUpload: (fileName: string, uploadId: string) => Promise; onOnePartDone: (fileName: string, uploadId: string, partNum: number) => Promise; onAllPartDone: (fileName: string, uploadId: string) => Promise; onDeleteFile?: (filePath: string) => Promise; }; export type UploadManagerMap = Record; type OnUploadSucces = ((file: UploadableFile) => void) | undefined; export type OnUploadSuccesMap = Record; export type Dispath = React.Dispatch>; export type UploadStore = { [key: string]: UploadableFile[]; }; export type UploadStoreAction = { type: 'add'; identifier: string | number; } | { type: 'edit_file'; identifier: string | number; file: UploadableFile; } | { type: 'edit_files'; files: Record; } | { type: 'remove_file'; identifier: string | number; fileName: string; } | { type: 'add_file'; identifier: string | number; file: UploadableFile; } | { type: 'clear_finished'; identifier: string | number; } | { type: 'add_files'; identifier: string | number; files: UploadableFile[]; }; export type UploadStoreDispatch = React.Dispatch; export {};