import { OnInit, OnDestroy } from '@angular/core'; import { I18nService } from '../../../services/i18n'; import { Conversation, Message } from '../../../services/chat/types'; import { MessageBubbleMetadata } from '../../molecules/message-bubble/types'; import * as i0 from "@angular/core"; /** * val-thread-panel * * Panel de hilo de conversacion asociado a una entidad (post, request, etc.). * Internamente usa ConversationService.getOrCreateForEntity() para inicializar * la conversacion y luego watchMessages() para escuchar en tiempo real. * Renderiza val-chat-window con los mensajes ya mapeados. * * Requiere provideValtechChat() y provideValtechFirebase() en main.ts. * * @example * */ export declare class ThreadPanelComponent implements OnInit, OnDestroy { protected i18n: I18nService; private conversationSvc; private chatConfig; private auth; entityType: string; entityId: string; currentUserId: string; title?: string; protected loading: import("@angular/core").WritableSignal; protected conv: import("@angular/core").WritableSignal; protected messages: import("@angular/core").WritableSignal; protected typingUsers: import("@angular/core").WritableSignal; private msgSub?; private typingSub?; constructor(); ngOnInit(): Promise; ngOnDestroy(): void; protected isConvOpen: import("@angular/core").Signal; protected loadingText: import("@angular/core").Signal; protected bubbleMessages: import("@angular/core").Signal; protected onSend(event: { text: string; files: File[]; }): void; protected onReactionClick(event: { msgId: string; token: string; }): void; protected onDeleteMessage(msgId: string): void; protected onReplyTo(_msgId: string): void; private getOrgId; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }