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;
}