import type { IAction, MessageType, HumanInputFormData } from '@/widget/types'; import { DateTimeToggleTheme } from '@/widget/features/bubble'; import type { DuiArtifactAccess } from '../dynamic-ui/types'; type Props = { message: MessageType; deploymentId: string; chatId: string; apiHost?: string; onRequest?: (request: RequestInit) => Promise; fileAnnotations?: any; showAvatar?: boolean; avatarSrc?: string; backgroundColor?: string; textColor?: string; chatFeedbackStatus?: boolean; fontSize?: number; feedbackColor?: string; isLoading: boolean; /** Re-answer this turn. Absent when the surface cannot regenerate. */ onRegenerate?: () => void; /** * The newest turn in the transcript. Core pins that turn's action row visible * (`alwaysVisible`) instead of hiding it until hover, because it is the row a visitor is most * likely to reach for. */ isLastMessage?: boolean; dateTimeToggle?: DateTimeToggleTheme; showAgentMessages?: boolean; sourceDocsTitle?: string; renderHTML?: boolean; handleActionClick: (elem: any, action: IAction | undefined | null) => void; /** Answers a structured human-input prompt. Absent means the host has not wired it. */ handleHumanInputSubmit?: (formData: HumanInputFormData, action: IAction | undefined) => void; handleSourceDocumentsClick: (src: any) => void; isTTSEnabled?: boolean; isTTSLoading?: Record; isTTSPlaying?: Record; handleTTSClick?: (messageId: string, messageText: string) => void; handleTTSStop?: (messageId: string) => void; /** * Send an answer from an interactive Dynamic UI block back as a follow-up turn. Supplied only * for the newest message while the conversation is idle — its absence is what makes replayed * history render as a record rather than a live prompt. */ onRespond?: (text: string) => void; /** * Artifact access for the `artifact-ref` block, present only when a server session * exists to scope the read through. Passed alongside `onRespond` for the same reason: * both are host capabilities a replayed history message may legitimately lack. */ artifacts?: DuiArtifactAccess; precedingUserText?: string; }; export declare const BotBubble: (props: Props) => import("solid-js").JSX.Element; export {};