import type { UIEvent } from 'react';
import type { Promisable } from 'type-fest';
import type { id } from '../../../types/typeAliases';
import type { ChatMessage } from '../types/ChatMessage';
import type { ChatParticipant } from '../types/ChatParticipant';
import type { ParsedCitation } from '../utils/parseCitationsFromContent';
import type { ChatProps } from './ChatProps';
/**
 * Props for the Chat message list container.
 *
 * @private component of `<Chat/>`
 */
export type ChatMessageListProps = {
    messages: ReadonlyArray<ChatMessage>;
    participants: ReadonlyArray<ChatParticipant>;
    expandedMessageId: id | null;
    messageRatings: Map<id, number>;
    setExpandedMessageId: (value: id | null) => void;
    handleRating: (message: ChatMessage, rating: number) => void;
    mode: 'LIGHT' | 'DARK';
    isCopyButtonEnabled?: boolean;
    isFeedbackEnabled?: boolean;
    onCopy?: () => void;
    onMessage?: (messageContent: string) => Promisable<void>;
    onCreateAgent?: (bookContent: string) => void;
    toolTitles?: Record<string, string>;
    teammates?: ChatProps['teammates'];
    onToolCallClick?: (toolCall: NonNullable<ChatMessage['toolCalls']>[number]) => void;
    onCitationClick?: (citation: ParsedCitation) => void;
    soundSystem?: ChatProps['soundSystem'];
    setChatMessagesElement: (element: HTMLDivElement | null) => void;
    onScroll: (event: UIEvent<HTMLDivElement>) => void;
    chatMessagesClassName?: string;
    hasActions: boolean;
};
/**
 * Renders the list of chat messages.
 *
 * @private component of `<Chat/>`
 */
export declare function ChatMessageList(props: ChatMessageListProps): import("react/jsx-runtime").JSX.Element;
