import { EventEmitter } from '../../stencil-public-runtime'; import { MessageSource } from '../../models/types'; export declare class EoMessageBubble { messageId: string; messageRole: 'user' | 'assistant'; content: string; isStreaming: boolean; error: boolean; /** Position within the conversation โ€” carried on feedback votes (spec ยง3.3). */ messageIndex: number; /** Citations from the stream โ€” the "Fontes" section renders only when non-empty. */ sources: MessageSource[]; vote: 'up' | 'down' | null; copied: boolean; eoMessageRetry: EventEmitter<{ messageId: string; }>; /** Internal seam โ€” the root re-emits this as the public `eoFeedback` with sessionId attached. */ eoMessageFeedback: EventEmitter<{ messageIndex: number; vote: 'up' | 'down'; }>; private contentEl; private copyTimer; onContentChange(): void; componentDidLoad(): void; disconnectedCallback(): void; private applyMarkdown; private handleRetryClick; private handleCopy; private handleVote; /** Actions appear only once an assistant answer finished streaming cleanly. */ private showActions; private showSources; render(): any; }