import React from 'react'; import Taro from '@tarojs/taro'; import { UploadOptions } from './upload'; import { BasicComponent } from '../../utils/typings'; import { FileItem } from './file-item'; /** 图片的尺寸 */ interface sizeType { /** 原图 */ original: string; /** compressed */ compressed: string; } /** 图片的来源 */ interface sourceType { /** 从相册选图 */ album: string; /** 使用相机 */ camera: string; } /** 视频的来源 */ interface mediaType { /** 只能拍摄图片或从相册选择图片 */ image: string; /** 只能拍摄视频或从相册选择视频 */ video: string; } export interface UploaderProps extends BasicComponent { url: string; maxCount: string | number; sizeType: (keyof sizeType)[]; sourceType: (keyof sourceType)[]; mediaType: (keyof mediaType)[]; camera: string; maxFileSize: number; defaultValue?: FileItem[]; value?: FileItem[]; previewType: 'picture' | 'list'; fit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'; uploadIcon?: React.ReactNode; uploadLabel?: React.ReactNode; name: string; memo: string; accept: string; disabled: boolean; autoUpload: boolean; multiple: boolean; timeout: number; data: any; method: string; xhrState: number | string; headers: any; preview: boolean; deletable: boolean; className: string; previewUrl?: string; maxDuration: number; style: React.CSSProperties; onStart?: (option: UploadOptions) => void; onDelete?: (file: FileItem, files: FileItem[]) => void; onSuccess?: (param: { responseText: XMLHttpRequest['responseText']; option: UploadOptions; files: FileItem[]; }) => void; onProgress?: (param: { e: ProgressEvent; option: UploadOptions; percentage: number | string; }) => void; onFailure?: (param: { responseText: XMLHttpRequest['responseText']; option: UploadOptions; files: FileItem[]; }) => void; onUpdate?: (files: FileItem[]) => void; onOversize?: (files: Taro.chooseImage.ImageFile[] | Taro.chooseMedia.ChooseMedia[] | any) => void; onChange?: (files: FileItem[]) => void; beforeXhrUpload?: (xhr: XMLHttpRequest, options: any) => void; beforeDelete?: (file: FileItem, files: FileItem[]) => boolean; onFileItemClick?: (file: FileItem, index: number) => void; } export declare const Uploader: React.ForwardRefExoticComponent & { children?: React.ReactNode; } & React.RefAttributes>; export {};