import { ComponentProps, HTMLAttributes, ReactNode } from 'react'; import { JSX } from 'react/jsx-runtime'; import { Streamdown } from 'streamdown'; import { FileUIPart, UIMessage } from '../../../../lib/ai/types'; import { Avatar, AvatarIcon } from '../avatar/avatar'; import { Button } from '../button/button'; type MessageProps = HTMLAttributes & { isResponse?: boolean; }; declare const Message: ({ className, isResponse, ...props }: MessageProps) => ReactNode; type MessageContentProps = HTMLAttributes; declare const MessageContent: ({ children, className, ...props }: MessageContentProps) => ReactNode; type MessageAvatarProps = ComponentProps & { avatarUrl?: string; name?: string; }; declare const MessageAvatar: ({ avatarUrl, name, className, children, variant, sizes, ...props }: MessageAvatarProps) => ReactNode; type MessageAvatarIconProps = ComponentProps; declare const MessageAvatarIcon: (props: MessageAvatarIconProps) => ReactNode; type MessageActionsProps = ComponentProps<'div'>; declare const MessageActions: ({ className, children, ...props }: MessageActionsProps) => ReactNode; type MessageActionProps = ComponentProps & { tooltip?: string; label?: string; }; declare const MessageAction: ({ tooltip, children, label, className, variant, size, ...props }: MessageActionProps) => ReactNode; type MessageBranchProps = HTMLAttributes & { defaultBranch?: number; onBranchChange?: (branchIndex: number) => void; }; declare const MessageBranch: ({ defaultBranch, onBranchChange, className, ...props }: MessageBranchProps) => ReactNode; type MessageBranchContentProps = HTMLAttributes; declare const MessageBranchContent: ({ children, ...props }: MessageBranchContentProps) => ReactNode[]; type MessageBranchSelectorProps = HTMLAttributes & { from: UIMessage['role']; }; declare const MessageBranchSelector: ({ ...props }: MessageBranchSelectorProps) => ReactNode; type MessageBranchPreviousProps = ComponentProps; declare const MessageBranchPrevious: ({ children, ...props }: MessageBranchPreviousProps) => ReactNode; type MessageBranchNextProps = ComponentProps; declare const MessageBranchNext: ({ children, ...props }: MessageBranchNextProps) => ReactNode; type MessageBranchPageProps = HTMLAttributes; declare const MessageBranchPage: ({ className, ...props }: MessageBranchPageProps) => ReactNode; type MessageResponseProps = ComponentProps; declare const MessageResponse: ({ className, components, plugins, controls, ...props }: MessageResponseProps) => JSX.Element; type MessageAttachmentProps = HTMLAttributes & { data: FileUIPart; className?: string; onRemove?: () => void; }; declare function MessageAttachment({ data, className, onRemove, ...props }: MessageAttachmentProps): ReactNode; type MessageAttachmentsProps = ComponentProps<'div'>; declare function MessageAttachments({ children, className, ...props }: MessageAttachmentsProps): ReactNode; type MessageToolbarProps = ComponentProps<'div'>; declare const MessageToolbar: ({ className, children, ...props }: MessageToolbarProps) => ReactNode; export { Message, MessageAction, MessageActions, MessageAttachment, MessageAttachments, MessageAvatar, MessageAvatarIcon, MessageBranch, MessageBranchContent, MessageBranchNext, MessageBranchPage, MessageBranchPrevious, MessageBranchSelector, MessageContent, MessageResponse, MessageToolbar, };