import * as lucide_angular from 'lucide-angular'; import * as i0 from '@angular/core'; import { ElementRef, EventEmitter } from '@angular/core'; interface FileUpload { /** * Binario del archivo. Los consumidores de SUBIDA lo envían siempre (sin cambio). * Para un archivo PRECARGADO (ver `preloaded`) que no tiene binario en cliente, * se pasa un placeholder (`new File([], nombre)`) SOLO para satisfacer el tipo: * cuando `preloaded` está presente, la card NO lee ni descarga este blob. */ file: File; valid: boolean; validating?: boolean; /** * ADITIVO — Marca este item como archivo YA CARGADO en servidor, representado por * REFERENCIA (sin binario real): nombre a mostrar + descarga por URL (+ tamaño si * el back lo expone). Cuando está presente, la card se pinta como cargada (100%) * sin leer el blob, muestra `name`/tamaño de la referencia y descarga vía * `downloadUrl`. `undefined` → comportamiento actual intacto (los consumidores * existentes no se ven afectados; `file` sigue siendo requerido). */ preloaded?: PreloadedFileRef; } /** * Referencia a un archivo ya cargado en servidor (sin binario en cliente). * Permite mostrar el estado "cargado" reutilizando la card de `kit-upload-files` * cuando el consumidor solo tiene el link del documento (no el `File`). */ interface PreloadedFileRef { /** Nombre a mostrar (derivado del documento / link). */ name: string; /** URL de descarga directa (p. ej. storageLocation). Opcional. */ downloadUrl?: string; /** Tamaño en bytes, si el back lo expone. Opcional → se oculta el tamaño. */ sizeBytes?: number; } declare class UploadFilesComponent { iconUpload: lucide_angular.LucideIconData; iconOctagon: lucide_angular.LucideIconData; iconX: lucide_angular.LucideIconData; message: string; inputFile: ElementRef; filesSelected: File[]; allowedFormats: string[]; multipleFiles: boolean; description: string; files: FileUpload[]; sizeFile: string; invalidFileView: boolean; /** * Renderiza las cards de archivos cargados también en modo multi-archivo */ showLoadedFiles: boolean; /** * Propaga la acción opcional "Guardar como plantilla" a cada card. */ showSaveAsTemplate: boolean; /** Texto del botón de descarga de cada card (aditivo, default conservado). */ downloadLabel: string; filesUpload: EventEmitter; invalidFile: EventEmitter; fileRemoved: EventEmitter; /** Reemite la acción "Guardar como plantilla" de una card (CLVDKIF-1758). */ saveAsTemplate: EventEmitter; fileNameInvalid: string; DIALOG_TITLE: string; DIALOG_INFO: string; dragOverActive: boolean; constructor(); get disableAddFile(): boolean; getAllowedFormats(): string; handleUploadFile(event: any): void; handleDrop(event: DragEvent): void; private processMultipleFiles; private processFile; handleValidFile(index: number): void; onRemoveFile(index: number): void; onSaveAsTemplate(file: FileUpload): void; onRemoveInvalidFile(): void; private emitFilesUpload; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UploadFilesFileComponent { iconCircle: lucide_angular.LucideIconData; iconX: lucide_angular.LucideIconData; iconDownload: lucide_angular.LucideIconData; iconSave: lucide_angular.LucideIconData; removeFile: EventEmitter; validFile: EventEmitter; /** * Acción opcional "Guardar como plantilla" (CLVDKIF-1758). ADITIVA: solo se * emite cuando el consumidor enciende `showSaveAsTemplate`. Entrega el * archivo cargado para que el consumidor decida qué hacer con él. */ saveAsTemplate: EventEmitter; /** * Muestra/oculta la acción "Guardar como plantilla" en la card. * Default false → consumidores actuales NO ven el botón (retrocompatible). */ showSaveAsTemplate: boolean; /** * Texto del botón de descarga. Configurable de forma aditiva; el default * conserva el texto actual para no alterar a los consumidores existentes. */ downloadLabel: string; progressBar: number; private _fileUpload; constructor(); onSaveAsTemplate(): void; set fileUpload(file: FileUpload); get fileUpload(): FileUpload; onRemoveFile(): void; getFileSize(size: number | null): string; /** Nombre a mostrar: de la referencia precargada o, si no, del binario. */ get displayName(): string; /** * Tamaño a mostrar (bytes) o `null` si se desconoce. Precargado → `sizeBytes` si * el back lo expone, si no `null` (la card oculta la línea de tamaño e ignora el * placeholder). Subida normal → tamaño real del blob. */ get displaySize(): number | null; uploadFile(): void; downloadFile(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class KifUploadFilesModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { KifUploadFilesModule, UploadFilesComponent }; export type { FileUpload, PreloadedFileRef };