import type { ComponentPublicInstance } from 'vue'; import type { ImageFit } from 'xzx-design/es/components/image'; import type { Interceptor, Numeric } from 'xzx-design/es/utils'; import type { UploadProps } from './upload'; export type UploadResultType = 'dataUrl' | 'text' | 'file'; export type UploadFileListItem = { url?: string; file?: File; objectUrl?: string; content?: string; isImage?: boolean; status?: '' | 'uploading' | 'done' | 'failed'; message?: string; imageFit?: ImageFit; deletable?: boolean; reupload?: boolean; previewSize?: Numeric; beforeDelete?: Interceptor; }; export type UploadMaxSize = Numeric | ((file: File) => boolean); export type UploadBeforeRead = (file: File | File[], detail: { name: Numeric; index: number; }) => boolean | undefined | Promise; export type UploadAfterRead = (items: UploadFileListItem | UploadFileListItem[], detail: { name: Numeric; index: number; }) => void; export type UploadExpose = { chooseFile: () => void; closeImagePreview: () => void; reuploadFile: (index: number) => void; }; export type UploadInstance = ComponentPublicInstance; export type UploadThemeVars = { uploadSize?: string; uploadIconSize?: string; uploadIconColor?: string; uploadTextColor?: string; uploadTextFontSize?: string; uploadUploadBackground?: string; uploadUploadActiveColor?: string; uploadDeleteColor?: string; uploadDeleteIconSize?: string; uploadDeleteBackground?: string; uploadFileBackground?: string; uploadFileIconSize?: string; uploadFileIconColor?: string; uploadFileNamePadding?: string; uploadFileNameMarginTop?: string; uploadFileNameFontSize?: string; uploadFileNameTextColor?: string; uploadMaskTextColor?: string; uploadMaskBackground?: string; uploadMaskIconSize?: string; uploadMaskMessageFontSize?: string; uploadMaskMessageLineHeight?: number | string; uploadLoadingIconSize?: string; uploadLoadingIconColor?: string; uploadDisabledOpacity?: number | string; };