export interface UploadedFile { id: string; file: File; preview?: string; progress: number; status: "uploading" | "success" | "error"; error?: string; } export interface FileUploadField { /** Unique identifier for the field */ id: string; /** Label displayed above the upload area */ label: string; /** Optional description/helper text */ description?: string; /** Accepted file types (e.g., 'image/*', '.pdf,.doc,.docx') */ accept?: string; /** Maximum file size in bytes */ maxSize?: number; /** Maximum number of files allowed */ maxFiles?: number; /** Whether at least one file is required */ required?: boolean; /** Default uploaded files (for restoring state) */ defaultValue?: File[]; /** Custom drop zone title text */ dropZoneTitle?: string; /** Custom drop zone subtitle text */ dropZoneSubtitle?: string; } export interface FileUploadStepProps { /** Title displayed at the top of the step */ title?: string; /** Description text below the title */ description?: string; /** Array of file upload fields */ fields: FileUploadField[]; /** Simulated upload delay in ms (for demo purposes). Set to 0 for instant. */ uploadDelay?: number; /** Custom upload handler. If provided, replaces the simulated upload. Should return a promise that resolves on success or rejects with error message. */ onUpload?: (file: File, fieldId: string) => Promise; /** Called when files change */ onFilesChange?: (files: Record) => void; /** Called when the user submits the form */ onSubmit: (files: Record) => void | Promise; /** Text for the submit button */ submitText?: string; /** Text shown while submitting */ loadingText?: string; /** Text shown while uploading files */ uploadingText?: string; /** Optional skip button config (for optional upload steps) */ skipButton?: { text: string; onClick: () => void; }; /** Optional back button config */ backButton?: { text: string; onClick: () => void; }; /** Whether to show file size in the file list */ showFileSize?: boolean; /** Whether to show success toast on upload */ showSuccessToast?: boolean; } export declare function FileUploadStep({ title, description, fields, uploadDelay, onUpload, onFilesChange, onSubmit, submitText, loadingText, uploadingText, skipButton, backButton, showFileSize, showSuccessToast, }: FileUploadStepProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=file-upload-step.d.ts.map