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, };