import { ElementUIComponent } from './component'; export type ListType = 'text' | 'picture' | 'picture-card'; export type FileUploadStatus = 'ready' | 'uploading' | 'success' | 'fail'; export interface FileListItem { name: string; url: string; status?: FileUploadStatus; } export interface ElUploadInternalRawFile extends File { uid: number; } export interface ElUploadInternalFileDetail { status: FileUploadStatus; name: string; size: number; percentage: number; uid: number; raw: ElUploadInternalRawFile; url?: string; } export interface ElUploadProgressEvent extends ProgressEvent { percent: number; } export interface HttpRequestOptions { headers: object; withCredentials: boolean; file: File; data: object; filename: string; action: string; onProgress: (e: ElUploadProgressEvent) => void; onSuccess: (response: any) => void; onError: (err: ErrorEvent) => void; } /** Upload Component */ export declare class ElUpload extends ElementUIComponent { /** Request URL (required) */ action: string; /** Request headers */ headers: object; /** Whether uploading multiple files is permitted */ multiple: boolean; /** Additions options of request */ data: object; /** Key name for uploaded file */ name: string; /** Whether cookies are sent */ withCredentials: boolean; /** Whether to show the uploaded file list */ showFileList: boolean; /** Whether to activate drag and drop mode */ drag: boolean; /** Accepted file types, will not work when thumbnail-mode is true */ accept: string; /** Hook function when clicking the uploaded files */ onPreview: (file: ElUploadInternalFileDetail) => void; /** Hook function when files are removed */ onRemove: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void; /** Hook function when uploaded successfully */ onSuccess: (response: any, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void; /** Hook function when some errors occurs */ onError: (err: ErrorEvent, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void; /** Hook function when some progress occurs */ onProgress: ( event: ElUploadProgressEvent, file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[] ) => void; /** Hook function when file status change */ onChange: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void; /** Hook function before uploading with the file to be uploaded as its parameter. If false or a Promise is returned, uploading will be aborted */ beforeUpload: (file: ElUploadInternalRawFile) => boolean | Promise; /** Whether thumbnail is displayed */ thumbnailMode: boolean; /** Default uploaded files */ fileList: FileListItem[]; /** Type of fileList */ listType: ListType; /** Whether to auto upload file */ autoUpload: boolean; /** Override default xhr behavior, allowing you to implement your own upload-file's request */ httpRequest: (options: HttpRequestOptions) => void; /** Whether to disable upload */ disabled: boolean; /** Maximum number of uploads allowed */ limit: number; /** Hook function when limit is exceeded */ onExceed: (file: ElUploadInternalFileDetail, fileList: ElUploadInternalFileDetail[]) => void; /** Clear the upload file list */ clearFiles(): void; /** Abort specified file */ abort(file: ElUploadInternalFileDetail): void; /** Upload the file list manually */ submit(): void; }