import type * as React from 'react'; import type { TimeProps } from '../time/types.cjs'; import { type PrimitivePropsWithRef } from '../utils/primitive.cjs'; /** Public item data preserving content and stable collection identity. */ export interface MessageListItem { /** Stable unique identifier preserving item identity across updates. */ id: string; /** Author content displayed before this message’s body content. */ author: React.ReactNode; /** Framework-native content rendered inside this item’s body region. */ content: React.ReactNode; /** Sender category exposed through the shared styling hooks. */ sender?: 'user' | 'assistant' | 'system' | (string & {}) | undefined; /** Message instant rendered with native Time component semantics. */ timestamp?: TimeProps['value'] | undefined; /** Supporting tool results displayed beneath the message content. */ toolCalls?: React.ReactNode | undefined; /** Supporting source references displayed beneath the message content. */ citations?: React.ReactNode | undefined; /** Interactive action content following the primary component content. */ actions?: React.ReactNode | undefined; } /** Public configuration for the MessageList component and its native attributes. */ export interface MessageListProps extends PrimitivePropsWithRef<'ol'> { /** * Ordered item collection using stable and unique identifiers. * @default [] */ items?: readonly MessageListItem[] | undefined; /** * Accessible name identifying this component to assistive technology. * @default 'Messages' */ label?: string | undefined; /** * Custom message body renderer preserving surrounding author and metadata. * @default undefined */ renderMessage?: ((item: MessageListItem) => React.ReactNode) | undefined; } /** Ordered conversation with author, time, tool calls and citations. */ export declare function MessageList({ items, label, renderMessage, children, ...props }: MessageListProps): React.ReactNode;