import type { HTMLAttributes, ReactNode, Ref } from 'react';
export type DropUploadRejectionReason = 'max-files' | 'max-size' | 'type';
export interface DropUploadItem {
    readonly file: File;
    readonly id: string;
    readonly previewUrl?: string;
}
export interface DropUploadRejection {
    readonly file: File;
    readonly reason: DropUploadRejectionReason;
}
export interface DropUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onDrop'> {
    readonly accept?: string;
    readonly browseLabel?: string;
    readonly defaultFiles?: readonly File[];
    readonly disabled?: boolean;
    readonly files?: readonly File[];
    readonly helperText?: ReactNode;
    readonly imageOutputMimeType?: 'image/jpeg' | 'image/png' | 'image/webp';
    readonly imageOutputQuality?: number;
    readonly imageResizeTargetHeight?: number;
    readonly imageResizeTargetWidth?: number;
    readonly imageResizeUpscale?: boolean;
    readonly label?: ReactNode;
    readonly maxFileSize?: number;
    readonly maxFiles?: number;
    readonly multiple?: boolean;
    readonly onFilesChange?: (files: File[], items: DropUploadItem[]) => void;
    readonly onReject?: (rejections: DropUploadRejection[]) => void;
    readonly previewClassName?: string;
    readonly ref?: Ref<HTMLDivElement>;
    readonly showPreviews?: boolean;
    readonly transformImages?: boolean;
}
export declare const DropUpload: ({ accept, browseLabel, className, defaultFiles, disabled, files, helperText, imageOutputMimeType, imageOutputQuality, imageResizeTargetHeight, imageResizeTargetWidth, imageResizeUpscale, label, maxFileSize, maxFiles, multiple, onFilesChange, onReject, previewClassName, ref, showPreviews, transformImages, ...props }: DropUploadProps) => import("react/jsx-runtime").JSX.Element;
