import type { RiskLabel } from "../../../core/index.js"; import { type UIMessage } from "ai"; /** One turn in the transcript: the user attachments beside the bubble, the article with its stream parts, and the settled-turn actions (Copy always; Edit on the last user turn, Regenerate on the last assistant turn). */ export declare function ThreadMessage({ message, restored, risks, busy, activeAssistantId, lastUserId, lastAssistantId, onEditLast, onRegenerateLast, sendMessage, respond }: { message: UIMessage; restored: boolean; risks: Map; busy: boolean; activeAssistantId?: string | undefined; lastUserId?: string | undefined; lastAssistantId?: string | undefined; onEditLast: () => void; onRegenerateLast: () => void; /** The thread's send — connect cards use it for the post-connect continuation. */ sendMessage?: (message: { text: string; }) => unknown; /** The thread's native approval response — grant-set cards resume with it. */ respond?: (response: { id: string; approved: boolean; }) => void; }): import("react").JSX.Element;