import * as react_jsx_runtime from 'react/jsx-runtime'; /** * ChatWidget Primitives — WealthX DS (Atoms) * * Atomic building blocks for the embeddable broker website chat widget. * All atoms are pure display components — no API calls, no state beyond local UI. * * Exports: * ChatWidgetLauncher — Floating action button (open/close) * ChatWidgetHeader — Gradient branded header * ChatWidgetMessage — Message bubble (bot | user | system) * TypingDots — Bare three-bouncing-dots animation (shared atom) * ChatWidgetTypingIndicator — Animated 3-dot indicator * ChatWidgetInputBar — Footer input with emoji/attachment/send */ interface ChatWidgetLauncherProps { /** Whether the chat window is currently open. */ isOpen: boolean; onClick: () => void; /** * Solid brand color (hex) for the button background. Omit to inherit * `--primary` from the nearest ThemeProvider. When set, the icon color is * derived from it so it stays readable on light brand colors. */ brandColor?: string; /** Number of unread messages — shows a red badge when > 0 and chat is closed. */ unreadCount?: number; className?: string; } declare function ChatWidgetLauncher({ isOpen, onClick, brandColor, unreadCount, className, }: ChatWidgetLauncherProps): react_jsx_runtime.JSX.Element; interface ChatWidgetHeaderProps { brokerName: string; subtitle?: string; /** Gradient start color. */ gradientFrom?: string; /** Gradient end color. */ gradientTo?: string; onMinimize?: () => void; className?: string; } declare function ChatWidgetHeader({ brokerName, subtitle, gradientFrom, gradientTo, onMinimize, className, }: ChatWidgetHeaderProps): react_jsx_runtime.JSX.Element; type ChatWidgetMessageRole = "bot" | "advisor" | "user" | "system"; interface ChatWidgetMessageProps { role: ChatWidgetMessageRole; content: string; timestamp?: string; /** True while the bot response is still streaming in — shows TypingIndicator instead. */ isStreaming?: boolean; /** * How to render `content`. `"plain"` (default) renders the raw string. * `"markdown"` renders it as sanitized markdown (headings, lists, links, * tables, code) — use for AI / assistant responses. */ format?: "plain" | "markdown"; className?: string; } declare function ChatWidgetMessage({ role, content, timestamp, isStreaming, format, className, }: ChatWidgetMessageProps): react_jsx_runtime.JSX.Element; interface TypingDotsProps { /** * Size preset. `"default"` = size-1.5 rounded dots at /60 opacity (chat * widget); `"sm"` = size-1 square dots at /70 opacity (copilot thinking * steps). Bundles dot size, gap, shape and opacity so call sites stay * pixel-identical to their prior hand-rolled markup. */ size?: "default" | "sm"; className?: string; } /** * Bare three-bouncing-dots animation, shared by `ChatWidgetTypingIndicator` * and the copilot `CopilotThinkingSteps`. Renders an `aria-hidden` span — the * accessible status text is owned by the consuming component. */ declare function TypingDots({ size, className }: TypingDotsProps): react_jsx_runtime.JSX.Element; interface ChatWidgetTypingIndicatorProps { /** * Optional label shown beside the animation, e.g. "Analysing your file…". * When set it also becomes the accessible status text. */ label?: string; /** * Visual style. `"dots"` (default) = three bouncing dots for live typing. * `"shimmer"` = a pulsing bar for a pre-stream "thinking" state. */ variant?: "dots" | "shimmer"; className?: string; } declare function ChatWidgetTypingIndicator({ label, variant, className, }: ChatWidgetTypingIndicatorProps): react_jsx_runtime.JSX.Element; interface ChatWidgetInputBarProps { value: string; onChange: (value: string) => void; onSend: (value: string) => void; disabled?: boolean; placeholder?: string; className?: string; } declare function ChatWidgetInputBar({ value, onChange, onSend, disabled, placeholder, className, }: ChatWidgetInputBarProps): react_jsx_runtime.JSX.Element; export { ChatWidgetHeader, type ChatWidgetHeaderProps, ChatWidgetInputBar, type ChatWidgetInputBarProps, ChatWidgetLauncher, type ChatWidgetLauncherProps, ChatWidgetMessage, type ChatWidgetMessageProps, type ChatWidgetMessageRole, ChatWidgetTypingIndicator, type ChatWidgetTypingIndicatorProps, TypingDots, type TypingDotsProps };