/// import { FILE_UPLOAD_STATUS } from './constants'; import { II18nLocaleUpload } from '../i18n'; export interface IUploadFileItem { id?: string; readonly file?: File; name: string; type: string; status: FILE_UPLOAD_STATUS; percent?: number; } export interface IImageUploadFileItem extends IUploadFileItem { src?: string; thumbSrc?: string; } export declare type IUploadFileItemInner = UPLOAD_ITEM & { _id?: string; readonly _file?: File; }; export declare type IUploadOnChangeHandler = (value: Value, detail?: IUploadChangeDetail) => void; export interface IUploadChangeDetail { item: IUploadFileItemInner; type: 'change' | 'add' | 'delete' | 'retry'; } export declare type IUploadOnUploadHandler = (file: File, report: (percent: number) => void) => Promise; export interface IUploadErrorMessageConfigMap { overMaxSize: { maxSize: number; formattedMaxSize: string; }; overMaxAmount: { maxAmount: number; }; } export declare type IUploadOnErrorHandler = (type: Type, data: IUploadErrorMessageConfigMap[Type]) => void; export declare type IUploadTipConfig

= P & { formattedMaxSize: string | null; }; export declare type IUploadTipsFunc = (config: IUploadTipConfig) => React.ReactNode; export declare type IImageOnUploadSuccessReturn = undefined | null | string | { src: string; thumbSrc: string; }; export declare type IImageUploadPreviewHandler = (file: IImageUploadFileItem, fileList: IImageUploadFileItem[]) => void; export interface IAbstractUploadProps> { className?: string; beforeUpload?: (file: File) => boolean | Promise; onUpload?: IUploadOnUploadHandler; onError?: IUploadOnErrorHandler; maxSize?: number; accept?: string; disabled?: boolean; manualUpload?: boolean; customUploadItem?: React.ComponentType; } export interface IAbstractMultiUploadProps> extends IAbstractUploadProps { fileList?: UPLOAD_ITEM[]; defaultFileList?: UPLOAD_ITEM[]; onChange: IUploadOnChangeHandler>, UPLOAD_ITEM>; multiple?: boolean; maxAmount?: number; sortable?: boolean; } export interface IUploadProps extends IAbstractMultiUploadProps { tips?: React.ReactNode | IUploadTipsFunc; pagination?: boolean; pageSize?: number; } export interface IImageUploadProps extends IAbstractMultiUploadProps { tips?: React.ReactNode | IUploadTipsFunc; preview?: IImageUploadPreviewHandler; getThumbSrcFromFile: (file: File) => string | Promise; } export interface ISingleUploadProps extends IAbstractUploadProps { tips?: React.ReactNode | IUploadTipsFunc; onChange: IUploadOnChangeHandler; value?: IUploadFileItem | null; } export interface IAbstractUploadTriggerProps { i18n: II18nLocaleUpload; fileList?: UPLOAD_ITEM[]; disabled?: boolean; accept?: string; remainAmount?: number; maxSize: number; maxAmount: number; multiple?: boolean; onAddFile: (file: File) => Promise; onError: IUploadOnErrorHandler; } export interface IFileInputProps { accept?: string; disabled?: boolean; remainAmount: number; multiple?: boolean; onChange: (files: File[]) => void; } export interface IAbstractUploadListProps> { i18n: II18nLocaleUpload; fileList: UPLOAD_ITEM[]; onRetry: (retryItem: IUploadFileItemInner) => void; onDelete: (retryItem: IUploadFileItemInner) => void; sortable?: boolean; onSortChange: (list: Array>) => void; customUploadItem?: React.ComponentType; } export interface IUploadListProps extends IAbstractUploadListProps { pagination: boolean; pageSize: number; } export interface IImageUploadListProps extends IAbstractUploadListProps { trigger: React.ReactNode; onPreview: IImageUploadPreviewHandler; } export interface IUploadItemProps { item: IUploadFileItemInner; i18n: II18nLocaleUpload; onRetry: IAbstractUploadListProps['onRetry']; onDelete: IAbstractUploadListProps['onDelete']; } export declare type INormalUploadItemProps = IUploadItemProps; export declare type ISingleUploadItemProps = IUploadItemProps; export declare type IImageUploadItemProps = IUploadItemProps & { onPreview: (file: IImageUploadFileItem) => void; };