import React, { FC, InputHTMLAttributes } from 'react';
import { NativeProps } from '../../utils/native-props';
import type { ImageProps } from '../image';
export declare type TaskStatus = 'pending' | 'fail' | 'success';
export interface ImageUploadItem {
key?: string | number;
url: string;
thumbnailUrl?: string;
extra?: any;
}
declare type Task = {
id: number;
url?: string;
file: File;
status: TaskStatus;
};
export declare type UploadTask = Pick;
export declare type ImageUploaderProps = {
defaultValue?: ImageUploadItem[];
value?: ImageUploadItem[];
onChange?: (items: ImageUploadItem[]) => void;
onUploadQueueChange?: (tasks: UploadTask[]) => void;
accept?: string;
multiple?: boolean;
maxCount?: number;
onCountExceed?: (exceed: number) => void;
disableUpload?: boolean;
showUpload?: boolean;
deletable?: boolean;
capture?: InputHTMLAttributes['capture'];
onPreview?: (index: number, item: ImageUploadItem) => void;
beforeUpload?: (file: File, files: File[]) => Promise | File | null;
upload: (file: File) => Promise;
onDelete?: (item: ImageUploadItem) => boolean | Promise | void;
preview?: boolean;
showFailed?: boolean;
imageFit?: ImageProps['fit'];
children?: React.ReactNode;
renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
} & NativeProps<'--cell-size'>;
export declare const ImageUploader: FC;
export {};