import * as React from 'react'; interface FileUploadProps extends Omit, 'onChange' | 'onError' | 'size'> { onFilesChange?: (files: File[]) => void; maxFiles?: number; maxSize?: number; showPreview?: boolean; /** Called when files are rejected due to size or count limits. */ onError?: (rejectedFiles: File[], reason: 'size' | 'count') => void; /** * Size variant — `compact` uses a horizontal layout with smaller icons and * tighter spacing, for dense forms. * @default "default" */ size?: 'default' | 'compact'; /** Label for the clickable upload action. @default "Click to upload" */ uploadLabel?: string; /** Label for the drag-and-drop hint, shown after `uploadLabel`. @default "or drag and drop" */ dragAndDropLabel?: string; /** File-count hint shown when `maxFiles > 1`. `{count}` is replaced with `maxFiles`. @default "Up to {count} files" */ multipleFilesLabel?: string; /** File-count hint shown when `maxFiles` is 1. @default "1 file" */ singleFileLabel?: string; /** Max-size hint. `{size}` is replaced with the limit in MB. @default "Max {size}MB" */ maxSizeLabel?: string; /** * Error shown when one or more files exceed `maxSize`. `{count}` and `{size}` * are replaced with the rejected file count and the limit in MB. * @default "{count} file(s) exceed the {size}MB limit and were not added." */ sizeErrorLabel?: string; /** * Error shown when more files are selected than `maxFiles` allows. `{max}` * and `{count}` are replaced with the file limit and the rejected count. * @default "Only {max} file(s) allowed. {count} file(s) were not added." */ countErrorLabel?: string; } declare const FileUpload: React.ForwardRefExoticComponent>; export { FileUpload }; export type { FileUploadProps };