import type { RegularCount } from '@fruits-chain/react-native-xiaoshu/lib/typescript/uploader/interface'; import type { PropsWithChildren } from 'react'; import React from 'react'; import type { CustomPreview } from './components/preview/Preview'; import type { CropMediaType, FileVO, IUploadTempSource, PickerType, PrintWaterMarkFn, UploadItem } from './interface'; import type { WatermarkOperations } from './utils'; interface OverrideUploadConfig { pickerType: PickerType; cropMediaType?: CropMediaType; multiple?: boolean; index?: number; } export interface UploadInstance { open: (config?: OverrideUploadConfig) => void; } export interface UploadActionParams { data: FormData; file: IUploadTempSource; resume: boolean; } export declare type UploadAction = ({ data, file, }: UploadActionParams) => Promise; export interface UploadProps { list?: UploadItem[]; defaultList?: UploadItem[]; /** * @description onChange在异步过程中被多次调用,如果onChange有props或依赖,需要注意,见:https://overreacted.io/zh-hans/a-complete-guide-to-useeffect/ */ onChange?: (list: UploadItem[]) => void; /** * 上传出错时的回调 */ onUploadError?: (msg?: any) => void; /** * 最大上传数量 */ maxCount?: number; /** * 上传可点击组件文本 */ tipText?: string; /** * 是否进行裁剪 */ cropping?: boolean; /** * 是否支持多选上传 */ multiple?: boolean; /** * 点击新增,regular模式下点击的索引 * @param index * @returns */ onPressAdd?: (index?: number) => void; /** * 上传地址(需要封装成UploadAction的形式) */ uploadAction: UploadAction; /** * cropping模式下选取图片的宽度(默认300) */ width?: number; /** * cropping模式下选取图片的高度(默认300) */ height?: number; /** * 是否支持续传(false: 不使用 true: 任何情况下都是用 number: 只有压缩后大于number MB的文件才使用) */ allowResume?: boolean | number; /** * 获取上传当前图片上传进度动作 */ progressAction?: (fileHash: string) => Promise<{ fileUrl: string; size: number; }>; /** * 是否开启压缩 */ compress?: boolean; /** * 是否显示UI */ showUi?: boolean; /** * 每行显示的图片数 default: 4 */ imagesPerRow?: number; /** * regular模式下,设置固定上传个数及文案 */ count?: number | RegularCount[]; /** * 自定义预览实现 key: 文件名后缀 value:自定义预览组件 */ customPreview?: CustomPreview; /** * 选择器类型 */ pickerType?: PickerType | PickerType[]; /** * pickerType 为cropPickerMediaType mediaType */ cropPickerMediaType?: CropMediaType; /** * 用于VisionCamera的标题 */ title?: string; /** * 照片水印(支持文本和图片 支持异步获取) */ watermark?: WatermarkOperations; /** * 是否支持后台上传 * true 支持, 选择文件或者点击重传后不会触发上传API,具体的上传调度逻辑由外部自行实现 * false 不支持 */ backUpload?: boolean; /** * 是否绘制水印 默认`true` */ shouldPrintWatermark?: boolean | PrintWaterMarkFn; /** * 资源删除前执行的钩子函数,返回false停止删除过程 返回`UploadItem[]`作为自定义删除结果直接使用 支持异步 * @param current * @param index * @param list * @returns */ beforeDelete?: (current: UploadItem, index: number, list: UploadItem[]) => UploadItem[] | boolean | Promise; } declare const UploadInternal: (props: PropsWithChildren & { ref?: React.Ref; }) => React.ReactElement; export default UploadInternal; //# sourceMappingURL=_internal.d.ts.map