import React from 'react'; export interface ChatMessage { id?: string; role: 'user' | 'assistant' | 'tool' | 'system'; content: string; toolName?: string; toolArgs?: Record; toolCallId?: string; toolStatus?: 'running' | 'success' | 'error' | 'timeout' | 'cancelled'; durationMs?: number; errorType?: string; model?: string; timestamp: Date; checkpointId?: string; } export interface ChatScrollControls { pageUp(): void; pageDown(): void; top(): void; bottom(): void; snapshot(): { scrollTop: number; scrollHeight: number; }; restoreAfterPrepend(anchor: { scrollTop: number; scrollHeight: number; }, expectedMessages: number): void; } interface ChatAreaProps { messages: ChatMessage[]; isProcessing: boolean; activeTool?: { name: string; args?: Record; }; onScrollRef?: (controls: ChatScrollControls | null) => void; onReachTop?: (anchor: { scrollTop: number; scrollHeight: number; }) => void; themeVersion?: number; } export declare function selectVisibleMessages(messages: ChatMessage[], scrollOffset: number, maxMessages?: number, _maxChars?: number): { visible: ChatMessage[]; start: number; }; export declare function ChatArea({ messages, isProcessing, activeTool, onScrollRef, onReachTop, themeVersion, }: ChatAreaProps): React.ReactNode; export {}; //# sourceMappingURL=ChatArea.d.ts.map