/** * MessageList - Conversation history display * * Displays the full conversation history with clean formatting: * - User messages: › prefix * - Assistant messages: • dimmed bullet for context, bold header for questions * - Tool calls: Inline action indicators */ import React from 'react'; import { type ToolCallStatus } from './ToolCallCard.js'; /** * Tool call information for assistant messages */ export interface ToolCall { /** Name of the tool being executed */ toolName: string; /** Current execution status */ status: ToolCallStatus; /** Input passed to the tool */ input: string; /** Output when complete */ output?: string; /** Error message if failed */ error?: string; } /** * Message in the conversation history */ export interface Message { /** Unique identifier for the message */ id: string; /** Who sent the message */ role: 'user' | 'assistant' | 'system'; /** Text content of the message */ content: string; /** Tool calls included in assistant messages */ toolCalls?: ToolCall[]; /** Whether this message is currently streaming */ isStreaming?: boolean; } /** * Props for the MessageList component */ export interface MessageListProps { /** Array of messages to display */ messages: Message[]; /** Optional max height in lines (clips content when set) */ maxHeight?: number; /** Whether tool calls should show expanded preview (default: false) */ toolCallsExpanded?: boolean; } /** * MessageList component * * Displays the full conversation history with clean styling: * - User messages: `› ` prefix in green * - Assistant messages: context with dimmed bullet, questions with bold header * - System messages: dimmed text (phase headers in yellow bold) * * @example * ```tsx * * // Renders: * // › Hello * // • Let me think about that. * // Next question: * // What framework do you prefer? * ``` */ export declare function MessageList({ messages, maxHeight, toolCallsExpanded, }: MessageListProps): React.ReactElement;