import type { UIEvent } from 'react';
import type { Promisable } from 'type-fest';
import type { id } from '../../../types/string_token';
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;
    /**
     * Chooses which feedback controls should be rendered.
     */
    feedbackMode?: ChatProps['feedbackMode'];
    /**
     * Optional localized labels used by feedback controls.
     */
    feedbackTranslations?: ChatProps['feedbackTranslations'];
    /**
     * Optional localized labels used by timestamp metadata.
     */
    timingTranslations?: ChatProps['timingTranslations'];
    /**
     * Optional resolver for turning technical citation sources into page/document titles.
     */
    resolveCitationLabel?: ChatProps['resolveCitationLabel'];
    /**
     * Optional moment locale used to format message timestamps.
     */
    chatLocale?: ChatProps['chatLocale'];
    onCopy?: () => void;
    onMessage?: (messageContent: string) => Promisable<void>;
    onActionButton?: ChatProps['onActionButton'];
    onQuickMessageButton?: ChatProps['onQuickMessageButton'];
    onReplyToMessage?: ChatProps['onReplyToMessage'];
    canReplyToMessage?: ChatProps['canReplyToMessage'];
    onCreateAgent?: (bookContent: string) => void;
    toolTitles?: Record<string, string>;
    teammates?: ChatProps['teammates'];
    teamAgentProfiles?: ChatProps['teamAgentProfiles'];
    visualMode?: ChatProps['visualMode'];
    onToolCallClick?: (toolCall: NonNullable<ChatMessage['toolCalls']>[number]) => void;
    onCitationClick?: (citation: ParsedCitation) => void;
    soundSystem?: ChatProps['soundSystem'];
    isSpeechPlaybackEnabled?: ChatProps['isSpeechPlaybackEnabled'];
    elevenLabsVoiceId?: ChatProps['elevenLabsVoiceId'];
    /**
     * Optional localized labels for Chat UI elements such as lifecycle badges.
     */
    chatUiTranslations?: ChatProps['chatUiTranslations'];
    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;
