import type { RenderFunction , VNode } from 'vue' ; import { Data } from '../_utils/types' ; export const LIST_TYPES = [ 'text' , 'picture' , 'picture-card' ] as const ; export type ListType = typeof LIST_TYPES [ number ] ; export const FILE_STATUS = [ 'init' , 'uploading' , 'done' , 'error' ] as const ; export type FileStatus = typeof FILE_STATUS [ number ] ; export interface FileItem { zh en uid : string ; zh en status ? : FileStatus ; zh en file ? : File ; zh en percent ? : number ; zh en response ? : any ; zh en url ? : string ; zh en name ? : string ; } export interface CustomIcon { zh en startIcon ? : RenderFunction ; zh en cancelIcon ? : RenderFunction ; zh en retryIcon ? : RenderFunction ; zh en successIcon ? : RenderFunction ; zh en errorIcon ? : RenderFunction ; zh en removeIcon ? : RenderFunction ; zh en previewIcon ? : RenderFunction ; zh en param { FileItem } fileItem fileIcon ? : ( fileItem : FileItem ) => VNode ; zh en param { FileItem } fileItem fileName ? : ( fileItem : FileItem ) => string | VNode ; } export interface RequestOption { zh en action ? : string ; zh en headers ? : Data ; zh en name ? : string | ( ( fileItem : FileItem ) => string ) ; zh en fileItem : FileItem ; zh en data ? : Data | ( ( fileItem : FileItem ) => Data ) ; zh en withCredentials ? : boolean ; zh en onProgress : ( percent : number , event ? : ProgressEvent ) => void ; zh en onSuccess : ( response ? : any ) => void ; zh en onError : ( response ? : any ) => void ; } export interface UploadRequest extends Data { zh en abort ? : ( ) => void ; }