import { SyntheticEvent } from 'react';
import { IBaseValuePro } from './abase';
declare type FileType = {
    name: string;
    fileKey: number | string;
    status?: 'inited' | 'uploading' | 'error' | 'finished';
    progress?: number;
    url?: string;
};
interface IUploaderPro extends IBaseValuePro {
    /** 上传按钮文本 */
    btnlabel?: string;
    /** 接受的文件类型 - rsuite Uploader.accept */
    accept?: string;
    /** 上传地址 - rsuite Uploader.action */
    action?: string;
    /** 是否一定上传到服务器 */
    actiondo?: number;
    /** 删除操作标识 */
    remove?: string;
    /** 下载操作标识 */
    download?: string;
    /** 是否自动上传 - rsuite Uploader.autoUpload */
    autoUpload?: boolean;
    /** 组件CSS类前缀 */
    classPrefix?: string;
    /** 上传时额外发送的数据 - rsuite Uploader.data */
    data?: any;
    /** 默认文件列表 - rsuite Uploader.defaultFileList */
    defaultFileList?: FileType[];
    /** 是否禁用文件项 */
    disabledFileItem?: boolean;
    /** 是否支持拖拽上传 - rsuite Uploader.draggable */
    draggable?: boolean;
    /** 文件列表(受控) - rsuite Uploader.fileList */
    fileList?: FileType[];
    /** 是否显示文件列表 - rsuite Uploader.fileListVisible */
    fileListVisible?: boolean;
    /** 请求头 - rsuite Uploader.headers */
    headers?: any;
    /** 列表类型 - rsuite Uploader.listType: 'text' | 'picture' | 'picture-text' */
    listType?: string;
    /** 预览文件最大大小 - rsuite Uploader.maxPreviewFileSize */
    maxPreviewFileSize?: number;
    /** 是否支持多文件 - rsuite Uploader.multiple */
    multiple?: boolean;
    /** 文件字段名 - rsuite Uploader.name */
    name?: string;
    /** 文件列表改变事件 - rsuite Uploader.onChange */
    onChange?: (fileList: any) => void;
    /** 上传失败事件 - rsuite Uploader.onError */
    onError?: (reason: Object, file: FileType) => void;
    /** 预览事件 - rsuite Uploader.onPreview */
    onPreview?: (file: FileType, event: SyntheticEvent<any>) => void;
    /** 上传进度事件 - rsuite Uploader.onProgress */
    onProgress?: (percent: number, file: FileType) => void;
    /** 删除文件事件 - rsuite Uploader.onRemove */
    onRemove?: (file: FileType) => void;
    /** 重新上传事件 - rsuite Uploader.onReupload */
    onReupload?: (file: FileType) => void;
    /** 上传成功事件 - rsuite Uploader.onSuccess */
    onSuccess?: (response: Object, file: FileType) => void;
    /** 上传前事件 - rsuite Uploader.onUpload */
    onUpload?: (file: FileType) => void;
    /** 自定义渲染文件信息 - rsuite Uploader.renderFileInfo */
    renderFileInfo?: (file: any) => React.ReactNode;
    /** 判断文件是否应该更新队列 - rsuite Uploader.shouldQueueUpdate */
    shouldQueueUpdate?: (fileList: Array<FileType>, newFile: Array<FileType>, FileType: any) => boolean;
    /** 判断文件是否应该上传 - rsuite Uploader.shouldUpload */
    shouldUpload?: (file: FileType) => boolean;
    /** 是否可删除 - rsuite Uploader.removable */
    removable?: boolean;
    /** 超时时间(ms) - rsuite Uploader.timeout */
    timeout?: number;
    /** 自定义触发元素类型 - rsuite Uploader.toggleComponentClass */
    toggleComponentClass?: React.ElementType;
    /** 是否携带cookie - rsuite Uploader.withCredentials */
    withCredentials?: boolean;
}
export type { IUploaderPro, FileType };
