import { type Snippet } from 'svelte'; export interface AssistantMessage { id: string; role: 'user' | 'assistant'; content: string; } interface AssistantChatProps { open?: boolean; title?: string; statusLabel?: string; placeholder?: string; emptyHint?: string; suggestions?: string[]; /** Chips shown under the conversation (after the user has messages). */ followUpSuggestions?: string[]; /** Active CRM query, shown under the header (e.g. «Presupuestos · María · el mes pasado»). */ contextLabel?: string; contextAriaLabel?: string; messages?: AssistantMessage[]; draft?: string; loading?: boolean; loadingLabel?: string; /** Atom-style progress lines inside the pending assistant bubble. */ statusSteps?: string[]; /** When false, the spinner bubble is hidden (parent paints status in a message). */ showLoadingBubble?: boolean; error?: string | null; voiceEnabled?: boolean; voiceOutput?: boolean; listening?: boolean; newChatLabel?: string; closeLabel?: string; sendLabel?: string; micLabel?: string; stopMicLabel?: string; voiceOnLabel?: string; voiceOffLabel?: string; copyChatLabel?: string; copiedChatLabel?: string; /** Optional back control (e.g. return to conversation list). */ backLabel?: string; subtitle?: string; class?: string; result?: Snippet<[AssistantMessage]>; footerExtra?: Snippet; onsend?: () => void; onclose?: () => void; onnewchat?: () => void; onback?: () => void; oncopychat?: () => void | Promise; onmicclick?: () => void; onvoiceoutputchange?: (on: boolean) => void; onsuggestion?: (text: string) => void; } declare const AssistantChat: import("svelte").Component void; }, "open" | "draft" | "voiceOutput">; type AssistantChat = ReturnType; export default AssistantChat;