import { LitElement } from 'lit'; /** Carpeta del árbol lateral (recursiva). La aporta el host vía `.folders`. */ export interface OkFmFolder { /** Identificador único de la carpeta (clave de navegación/selección). */ id: string; /** Texto visible de la carpeta. */ label: string; /** Nombre de un ionicon opcional, mostrado antes del label. */ icon?: string; /** Recuento de elementos, alineado a la derecha en la fila. */ count?: number; /** Sub-carpetas; si las hay, se dibuja el caret expandible. */ children?: OkFmFolder[]; } /** Archivo del contenido de la carpeta actual. Lo aporta el host vía `.files`. */ export interface OkFmFile { /** Identificador único del archivo. */ id: string; /** Nombre del archivo (se elipsa si no cabe). */ name: string; /** Extensión/tipo (pdf, xls, png…) → badge tintado. Si falta, se deriva del nombre. */ ext?: string; /** Etiqueta de categoría opcional (no usada para el color; informativa). */ kind?: string; /** Tamaño ya formateado y legible (p.ej. "218 KB"). */ sizeLabel?: string; /** Fecha de modificación ya formateada (p.ej. "2026-05-08 09:14"). */ modified?: string; /** URL de descarga/abrir opcional (se pasa en `ok-download`). */ url?: string; /** URL de miniatura opcional (imágenes); si está, se muestra en lugar del icono. */ thumb?: string; } /** Migaja del breadcrumb (de raíz a carpeta actual). */ export interface OkFmCrumb { /** Id de la carpeta a la que navega al hacer click. */ id: string; /** Texto visible de la migaja. */ label: string; } /** Medidor de espacio de almacenamiento (bajo el árbol). */ export interface OkFmQuota { /** Etiqueta del espacio usado (p.ej. "1,8 GB usados"). */ usedLabel: string; /** Etiqueta del espacio total (p.ej. "5 GB"). Opcional: ausente ⇒ modo "sin límite". */ totalLabel?: string; /** Fracción ocupada 0–1 (ancho de la barra). Ignorada en modo "sin límite". */ fraction?: number; /** Sin cuota dura (p.ej. bucket S3 por hub): muestra solo lo usado, sin barra. */ unlimited?: boolean; } /** Modo de visualización del área de archivos. */ export type OkFmView = 'grid' | 'list'; /** Textos i18n del componente (defaults en español). */ export interface OkFmLabels { /** Botón primario de subida. */ upload: string; /** Botón de importar. */ import: string; /** Placeholder del buscador. */ search: string; /** Eyebrow del árbol de carpetas. */ folders: string; /** Eyebrow del medidor de espacio. */ space: string; /** Estado vacío (sin archivos). */ empty: string; /** Acción de fila: descargar. */ download: string; /** Acción de fila: eliminar. */ delete: string; /** Acción de fila: abrir. */ open: string; /** Botón de nueva carpeta. */ newFolder: string; /** Caption del medidor cuando no hay cuota dura. */ noLimit: string; } export declare class OkFileManager extends LitElement { static styles: import("lit").CSSResult; /** Árbol de carpetas (recursivo vía `children`). */ folders: OkFmFolder[]; /** Contenido de la carpeta actual. */ files: OkFmFile[]; /** Breadcrumb de raíz a carpeta actual. */ path: OkFmCrumb[]; /** Id de la carpeta activa/seleccionada. */ selected: string; /** Modo de visualización del área de archivos. */ view: OkFmView; /** Medidor de espacio opcional bajo el árbol. */ quota?: OkFmQuota; /** Título opcional sobre la toolbar (informativo). Vacío = sin título. */ title: string; /** Muestra el buscador en la toolbar. */ searchable: boolean; /** Muestra el botón primario de subida y habilita drag&drop. */ uploadable: boolean; /** Muestra esqueletos de carga en lugar del contenido. */ loading: boolean; /** Textos i18n (merge sobre los defaults en español). */ labels: Partial; private get t(); private expandedIds; private dragging; private seeded; private fileInput; private searchTimer?; private seedExpanded; private emit; private navigate; private open; private download; private deleteFile; private createFolder; private changeView; private onSearch; private openPicker; private onPicked; private toggle; private onDragOver; private onDragLeave; private onDrop; private extOf; private variant; private badgeLabel; private renderBadge; private renderFolder; private flatFolders; private renderQuota; private renderToolbar; private get iconOpen(); private get iconDownload(); private get iconDelete(); private fileActions; private renderContent; private renderGrid; private renderList; render(): unknown; } declare global { interface HTMLElementTagNameMap { 'ok-file-manager': OkFileManager; } }