import React, { CSSProperties, HTMLAttributes, ReactNode } from 'react';
import { UploadData, UploadFunction } from './types';
import { WithRef } from '../utils/type';
export interface BaseUploadProps {
/**
* 文件被上传时调用的方法
* @param file 需要上传的文件的数据
* @param callbacks 文件上传过程中的回调,onProgress用来更新文件上传进度,onError用来告诉组件上传失败和失败的原因,onComplete用来告诉组件上传成功
* @returns 停止文件上传的方法,可以不传,不传时组件上没有停止上传的按钮
*/
onUpload: UploadFunction;
/**
* 展示文件列表
* @default true
*/
showFileList?: boolean;
/**
* 文件列表,可以通过 getUploadValue 快速构造列表数据
*/
value: UploadData[];
/**
* 文件列表或文件状态发生变更时的回调
*/
onChange: (files: UploadData[]) => void;
/**
* 可以上传的文件类型,参考:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
* @default ''
*/
accept?: string;
/**
* 持否支持多选文件
* @default false
*/
multiple?: boolean;
/** 自定义样式名 */
className?: string;
/** 自定义样式 */
style?: CSSProperties;
/**
* 禁用组件
* @default false
*/
disabled?: boolean;
/** 根元素的 html 属性 */
rootHtmlProps?: WithRef, HTMLDivElement>;
/** 展示文件的 html 属性 */
fileHtmlProps?: WithRef, HTMLDivElement>;
children?: ReactNode;
}
export declare type BaseUploadRef = {
handleClick: () => void;
uploadFiles: (files: File[] | null) => Promise;
};
export declare const BaseUpload: React.ForwardRefExoticComponent>;