import * as React from 'react'; interface FileUploadProps extends Omit, 'onChange' | 'onError'> { 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; } /** * Drag-and-drop file input with preview list. * * @description * Manages selected file state and provides a standardized, accessible interface * for file uploads. Supports click-to-browse and drag-and-drop. Shows a preview * list of selected files with per-file remove buttons. * * Headless logic is available via `useFileUpload` for custom drop-zone UIs. * * @ai-rules * 1. Use `onFilesChange` to capture the selected files array in your form state. * 2. `maxFiles` defaults to 1 (single file). Set to a higher number for multi-upload. * 3. `maxSize` is in bytes (default: 5MB). Files exceeding the limit trigger `onError` and show an inline error. * 4. Set `showPreview={false}` if you manage the file list externally. * 5. Use `onError` to handle rejected files (e.g., show a toast notification). */ declare const FileUpload: React.ForwardRefExoticComponent>; export { FileUpload }; export type { FileUploadProps };