import { FactoryComponent, Attributes } from 'mithril'; export interface FileUploadI18n { /** Default label text for upload area */ label?: string; /** Text for selected files section */ selectedFiles?: string; /** Text for accepted file types */ acceptedTypes?: string; /** Remove file button title */ removeFile?: string; /** File size limit error message template (use {maxSize} placeholder) */ fileSizeExceeds?: string; /** File type not accepted error message template (use {accept} placeholder) */ fileTypeNotAccepted?: string; /** File size units */ fileSizeUnits?: { bytes?: string; kb?: string; mb?: string; gb?: string; }; } export interface FileUploadAttrs extends Attributes { /** Accept specific file types (e.g., "image/*", ".pdf,.doc") */ accept?: string; /** Allow multiple file selection */ multiple?: boolean; /** Maximum file size in bytes */ maxSize?: number; /** Maximum number of files (for multiple uploads) */ maxFiles?: number; /** Callback when files are selected/dropped */ onFilesSelected?: (files: File[]) => void; /** Callback for upload progress (if implementing upload) */ onProgress?: (progress: number, file: File) => void; /** Callback when files are removed */ onFileRemoved?: (file: File) => void; /** Disable the upload area */ disabled?: boolean; /** Custom label text */ label?: string; /** Helper text */ helperText?: string; /** Show file preview for images */ showPreview?: boolean; /** Custom class */ className?: string; /** Validation error message */ error?: string; /** Internationalization */ i18n?: FileUploadI18n; } /** * File Upload Component with Drag and Drop * Supports multiple files, file type validation, size limits, and image preview */ export declare const FileUpload: FactoryComponent;