export interface AttachmentItem { id: string; file: File; status: 'uploading' | 'ready' | 'error'; url?: string; error?: string; } export interface AttachmentUploaderMetadata { /** Título del campo (se renderiza arriba, estilo label de val-form). */ title?: string; /** Texto de ayuda (se renderiza abajo a la derecha, en tono dark). */ hint?: string; maxFiles?: number; accept?: string; disabled?: boolean; /** Compress images before upload (default: true). PDFs are never compressed. */ compressImages?: boolean; /** Upload function. If omitted, falls back to FeedbackService.uploadAttachment. */ uploadFn?: (file: File) => Promise; }