/// <reference types="react" />
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 `ChatMessageItem` component
 *
 * @private props for internal subcomponent
 */
type ChatMessageItemProps = Pick<ChatProps, 'onMessage' | 'onActionButton' | 'participants'> & {
    message: ChatMessage;
    participant: ChatParticipant | undefined;
    isLastMessage: boolean;
    setExpandedMessageId: (value: id | null) => void;
    isExpanded: boolean;
    currentRating: number;
    handleRating: (message: ChatMessage, rating: number) => void;
    mode: 'LIGHT' | 'DARK';
    /**
     * Enables the copy button for this message bubble.
     */
    isCopyButtonEnabled?: boolean;
    /**
     * Enables the feedback (rating) UI for this message bubble.
     */
    isFeedbackEnabled?: boolean;
    /**
     * Called when the copy button is pressed.
     */
    onCopy?: () => void;
    /**
     * Called when the create agent button is pressed for book code blocks.
     */
    onCreateAgent?: (bookContent: string) => void;
    /**
     * Optional mapping of technical tool names to human-readable titles.
     * e.g., { "web_search": "Searching the web..." }
     */
    toolTitles?: Record<string, string>;
    /**
     * Optional metadata about teammates for team tool calls
     * Maps tool name to agent information
     */
    teammates?: TeammatesMap;
    /**
     * Optional cached metadata keyed by TEAM tool names to enrich tool call chips.
     */
    teamAgentProfiles?: ChatProps['teamAgentProfiles'];
    /**
     * Called when a tool call chiplet is clicked.
     */
    onToolCallClick?: (toolCall: NonNullable<ChatMessage['toolCalls']>[number]) => void;
    /**
     * Called when a source citation chip is clicked.
     */
    onCitationClick?: (citation: ParsedCitation) => void;
    /**
     * Optional sound system for triggering tool chip events.
     */
    soundSystem?: ChatProps['soundSystem'];
    /**
     * Controls whether the play button below the message is shown.
     */
    isSpeechPlaybackEnabled?: ChatProps['isSpeechPlaybackEnabled'];
    readonly elevenLabsVoiceId?: ChatProps['elevenLabsVoiceId'];
};
/**
 * Metadata for a teammate agent tool.
 */
type TeammateMetadata = {
    url: string;
    label?: string;
    instructions?: string;
    toolName: string;
};
/**
 * Lookup map of teammate metadata by tool name.
 */
type TeammatesMap = Record<string, TeammateMetadata>;
/**
 * Renders a single chat message item with avatar, content, buttons, and rating.
 *
 * @private internal subcomponent of `<Chat>` component
 */
export declare const ChatMessageItem: import("react").MemoExoticComponent<(props: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
export {};
