import { ElementSize } from '../FieldWrapper'; export type UploadStatus = 'ready' | 'uploading' | 'complete' | 'error'; export interface UploadMetadata { id: string; name: string; size: number; type: string; lastModified: number; status: UploadStatus; progress: number; result?: unknown; error?: string; } export interface FileUploadContext { signal: AbortSignal; onProgress: (progress: number) => void; } export interface FileUploadProps { name: string; label?: string; accept?: string; multiple?: boolean; maxFiles?: number; maxSize?: number; files?: File[]; defaultFiles?: File[]; onFilesChange?: (files: File[]) => void; onMetadataChange?: (metadata: UploadMetadata[]) => void; uploadFile?: (file: File, context: FileUploadContext) => Promise; autoUpload?: boolean; showPreview?: boolean; helperText?: string; selectLabel?: string; removeLabel?: (file: File) => string; size?: ElementSize; required?: boolean; disabled?: boolean; error?: string; className?: string; } export default function FileUpload({ name, label, accept, multiple, maxFiles, maxSize, files, defaultFiles, onFilesChange, onMetadataChange, uploadFile, autoUpload, showPreview, helperText, selectLabel, removeLabel, size, required, disabled, error, className }: FileUploadProps): import("react/jsx-runtime").JSX.Element;