import { ArchivoRechazado } from '../../../../utils/general/archivos.util';
import * as i0 from "@angular/core";
interface VistaArchivo {
icono: string;
color: string;
extension: string;
peso: string;
}
/**
* Selector de archivos con dropzone (drag & drop) o click, validación de
* extensión/peso, y lista de archivos elegidos con ícono por tipo y opción de quitar.
*
* Uso: ``.
*
* @Input label - Texto del label (mismo patrón que app-input: si no se pasa, no se
* renderiza label)
* @Input wlabel - Ancho mínimo del label en px cuando `isVertical` es false
* @Input isRequired - Muestra el asterisco de campo requerido junto al label
* @Input isVertical - Label arriba del dropzone en vez de al costado (default: true)
* @Input value - [(value)] lista de archivos ya elegidos/válidos (mismo nombre que
* el `value` two-way de app-input/app-input-editor/etc.)
* @Input extensiones - Extensiones permitidas sin punto (ej. ['pdf','jpg']); vacío = todas
* @Input pesoMaximoMB - Peso máximo por archivo en MB (0 = sin límite)
* @Input multiple - Permite elegir/soltar más de un archivo a la vez
* @Input disabled - Deshabilita el dropzone/click
* @Input texto - Texto principal del dropzone
* @Input textoAyuda - Texto de ayuda debajo del dropzone (si no se define, se genera
* automáticamente a partir de `extensiones`/`pesoMaximoMB`); mismo nombre
* que `textoAyuda` en app-input
* @Input icono - Clase del ícono del dropzone (default: 'fa-cloud-arrow-up')
* @Input accept - `accept` nativo del input file (si no se define, se genera desde `extensiones`)
* @Input variante - 'estandar' (compacto, bordes rectos), 'modern' (10px, sombra) o 'soft'
* (el look original de ng-erp-crm-tsi: dropzone punteada suave, cards con acento lateral)
* @Output rechazados - Archivos que no pasaron la validación de extensión/peso, con el motivo
* @Output fileSelected - Archivos que SÍ pasaron la validación y se agregaron a `value` en esta
* tanda (drop/selección puntual, no el array completo) — útil para, por ejemplo,
* subirlos a un servicio apenas se agregan, sin esperar a que se guarde el formulario.
* Mismo nombre que el output de app-button en su modo `uploadButton`.
*/
export declare class InputFileComponent {
label: import("@angular/core").InputSignal;
wlabel: import("@angular/core").InputSignal;
isRequired: import("@angular/core").InputSignal;
isVertical: import("@angular/core").InputSignal;
value: import("@angular/core").ModelSignal;
extensiones: import("@angular/core").InputSignal;
pesoMaximoMB: import("@angular/core").InputSignal;
multiple: import("@angular/core").InputSignal;
disabled: import("@angular/core").InputSignal;
texto: import("@angular/core").InputSignal;
textoAyuda: import("@angular/core").InputSignal;
icono: import("@angular/core").InputSignal;
accept: import("@angular/core").InputSignal;
/** 'estandar' (compacto, bordes rectos), 'modern' (10px, sombra) o 'soft' (el look
* original de ng-erp-crm-tsi: dropzone punteada suave, cards con acento lateral). */
variante: import("@angular/core").InputSignal<"estandar" | "modern" | "soft">;
rechazados: import("@angular/core").OutputEmitterRef;
fileSelected: import("@angular/core").OutputEmitterRef;
private readonly fileInput;
protected readonly arrastrando: import("@angular/core").WritableSignal;
private readonly reglas;
protected readonly acceptVisible: import("@angular/core").Signal;
protected readonly ayudaVisible: import("@angular/core").Signal;
protected abrir(): void;
protected onDragOver(event: DragEvent): void;
protected onDrop(event: DragEvent): void;
protected onChange(event: Event): void;
protected quitar(indice: number): void;
protected verArchivo(file: File): VistaArchivo;
private agregar;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}
export {};