import { LitElement } from 'lit'; export interface OkChatMessage { /** Identificador único del mensaje (clave de render). */ id: string; /** Texto del mensaje. */ text: string; /** Autor visible (solo se muestra en mensajes ajenos). */ author?: string; /** Hora del mensaje (texto ya formateado, p.ej. '14:32'). */ time?: string; /** Si es `true`, el mensaje es del usuario actual (alineado a la derecha). */ self?: boolean; /** Avatar: URL de imagen o iniciales (texto corto). Solo en mensajes ajenos. */ avatar?: string; } /** Textos humanos de ok-chat (i18n; default inglés, override vía prop `labels`). */ export interface OkChatLabels { /** Placeholder del compositor. */ composerPlaceholder: string; /** aria-label del botón de enviar. */ send: string; } export declare class OkChat extends LitElement { static styles: import("lit").CSSResult; /** Mensajes del hilo (orden cronológico ascendente). */ messages: OkChatMessage[]; /** Texto de la cabecera; si está vacío no se dibuja cabecera. */ title: string; /** Placeholder del compositor. Si vacío, se deriva de `labels.composerPlaceholder`. */ placeholder: string; /** Si está activo, oculta el compositor (chat de solo lectura). */ readonly: boolean; /** Overrides de textos humanos (i18n). Se fusionan sobre los defaults en inglés. */ labels: Partial; /** Textos efectivos (defaults inglés + overrides). */ private get t(); /** Placeholder efectivo: prop explícita o el de labels. */ private get effectivePlaceholder(); private logEl?; private textareaEl?; private isGroupStart; private isGroupEnd; private renderAvatar; private renderMessage; private send; private onKeydown; protected updated(changed: Map): void; render(): unknown; } declare global { interface HTMLElementTagNameMap { 'ok-chat': OkChat; } }