import { LitElement } from 'lit'; /** Variante de color del icono redondo (tinte de estado). */ export type OkNotifVariant = 'leaf' | 'warn' | 'info' | 'brand'; /** Una notificación de la bandeja. */ export interface OkNotification { /** Identificador único (clave de lectura/selección). */ id: string; /** * Icono del avatar redondo. Dos formas: * • NOMBRE de ionicon (p. ej. `checkmark-outline`) → `ion-icon name`; * • SVG ya resuelto (`` o `data:` URI) → `ion-icon icon` (hosts offline/horneados). * Si se omite se usa un icono de campana por defecto. */ icon?: string; /** Tinte de estado del avatar (default neutro). */ variant?: OkNotifVariant; /** Texto principal. Puede traer HTML simple () → se pinta con unsafeHTML controlado. */ text: string; /** Línea secundaria mono (contexto, cita, referencia). */ meta?: string; /** Marca de tiempo relativa ya formateada por el consumidor (p. ej. "12:42", "ayer"). */ time?: string; /** Si es no-leída: marca el punto lateral y cuenta en el badge. */ unread?: boolean; } /** Chip de filtro de la cabecera. */ export interface OkNotifFilter { /** Identificador del filtro (se emite en `ok-filter`). */ id: string; /** Texto visible del chip. */ label: string; } /** Textos humanos (i18n; default inglés, override vía prop `labels`). */ export interface OkNotifLabels { /** Texto del footer (marcar todas como leídas). */ markAllRead: string; /** aria-label del botón de cerrar (X). */ close: string; /** Título del estado vacío. */ emptyTitle: string; /** Texto del estado vacío. */ emptyText: string; } export declare class OkNotificationCenter extends LitElement { static styles: import("lit").CSSResult; /** Notificaciones a mostrar (datos declarativos). */ items: OkNotification[]; /** Chips de filtro de la cabecera. */ filters: OkNotifFilter[]; /** Id del filtro activo. */ active?: string; /** Abierto/cerrado (modo controlado por el padre). */ open: boolean; /** Título de la cabecera. */ title: string; /** Textos traducibles (merge sobre los defaults en inglés). */ labels: Partial; private get t(); private get unreadCount(); private readonly onKeydown; connectedCallback(): void; disconnectedCallback(): void; private isResolvedSvg; private requestClose; private onItemClick; private onMarkAll; private onFilter; protected updated(changed: Map): void; private renderAvatar; private renderText; private renderItem; private renderEmpty; render(): unknown; } declare global { interface HTMLElementTagNameMap { 'ok-notification-center': OkNotificationCenter; } }