import { Subscription, Observable } from 'rxjs'; export interface UploaderOptions { concurrency?: number; allowedContentTypes?: string[]; maxUploads?: number; maxFileSize?: number; uploadedCount?: number; } export interface BlobFile extends Blob { name: string; } export declare enum UploadStatus { Queue = 0, Uploading = 1, Done = 2, Cancelled = 3, Remove = 4, Error = 5 } export interface UploadProgress { status: UploadStatus; data?: { percentage: number; speed?: number; speedHuman?: string; startTime?: number | null; endTime?: number | null; eta?: number | null; etaHuman?: string | null; }; } export interface FUploadFileExtend { id: string; name: string; disabled?: boolean; checked?: boolean; size?: number | undefined; createTime?: string | undefined; type?: string; extend?: any | null; extendStatus?: number; extendHeaders?: { [key: string]: string; } | null; showDownload?: boolean; showComments?: boolean; modeless?: boolean; } export interface UploadFile { id: string; fileIndex: number; lastModifiedDate: Date; name: string; size: number; type: string; form: FormData; progress: UploadProgress; response?: any; responseStatus?: number; sub?: Subscription | any; nativeFile?: File; responseHeaders?: { [key: string]: string; }; } export interface UploadOutput { type: 'addedToQueue' | 'allAddedToQueue' | 'uploading' | 'done' | 'start' | 'cancelled' | 'dragOver' | 'dragOut' | 'drop' | 'removed' | 'allRemoved' | 'rejected' | 'allDone' | 'allStart' | 'allCancelled' | 'error'; file?: UploadFile; nativeFile?: File; message?: String; files?: UploadFile[]; } export interface UploadConfig { url?: string; method?: string; id?: string; fieldName?: string; fileIndex?: number; file?: UploadFile; data?: { [key: string]: any; extProperty?: DocMetaProperty | null; }; headers?: { [key: string]: string; } | null; includeWebKitFormBoundary?: boolean; withCredentials?: boolean; timeout?: number; } export interface UploadInput extends UploadConfig { type: 'upload' | 'uploadAll' | 'cancel' | 'cancelAll' | 'remove' | 'removeAll' | 'config' | 'hide' | 'multipartUpload' | 'sliceUpload'; /** 分块上传时,每块大小默认为 1M */ chunkSize?: number; } export declare abstract class UploadServerService { constructor(); abstract upload(files: UploadFile[], event: UploadInput, extendService: any): Observable; abstract remove(files: UploadFile[], event: UploadInput, extendService: any): Observable; abstract multipartUpload(file: UploadFile, event: UploadInput, extendService: any): Observable; } export interface DocMetaProperty { extProperties1?: string; extProperties2?: string; extProperties3?: string; extProperties4?: string; extProperties5?: string; }