import * as react_jsx_runtime from 'react/jsx-runtime'; import { CopilotConversation } from './copilot-chat-history.js'; import { CopilotSource, CopilotErrorMessageProps, CopilotRateLimitMessageProps } from './copilot-primitives.js'; import { CopilotActionCardProps } from './copilot-action-card.js'; import { CopilotPlanCardProps } from './copilot-plan-card.js'; import { CopilotDataCardProps } from './copilot-data-card.js'; import { CopilotSuggestionCardProps } from './copilot-suggestion-card.js'; import { CopilotContextCardProps } from './copilot-context-card.js'; import { CopilotMeetingNoteCardProps } from './copilot-meeting-note-card.js'; import { CopilotMeetingRecordPromptProps } from './copilot-meeting-record-prompt.js'; import { CopilotSuggestedPrompt } from './copilot-empty-state.js'; /** * CopilotPanel — WealthX DS (Template) * * The full broker Copilot extension panel: a branded header, a body that * switches between the connection / signed-out / empty / chat states, and a * message composer. The chat thread composes every Copilot response atom and * molecule. Layout/composition only — driven by mock/placeholder data via props. */ type CopilotPanelState = "not-installed" | "connecting" | "signed-out" | "empty" | "chat"; interface CopilotThreadMessage { role: "bot" | "advisor" | "user" | "system"; content: string; format?: "plain" | "markdown"; timestamp?: string; /** Source chips rendered beneath the message. */ sources?: CopilotSource[]; } type CopilotThreadItem = ({ kind: "message"; } & CopilotThreadMessage) | { kind: "thinking"; steps?: string[]; isThinking?: boolean; defaultExpanded?: boolean; } | ({ kind: "action"; } & CopilotActionCardProps) | ({ kind: "plan"; } & CopilotPlanCardProps) | ({ kind: "data"; } & CopilotDataCardProps) | ({ kind: "suggestion"; } & CopilotSuggestionCardProps) | ({ kind: "context"; } & CopilotContextCardProps) | ({ kind: "meeting-note"; } & CopilotMeetingNoteCardProps) | ({ kind: "meeting-record"; } & CopilotMeetingRecordPromptProps) | ({ kind: "error"; } & CopilotErrorMessageProps) | ({ kind: "rate-limit"; } & CopilotRateLimitMessageProps); interface CopilotPanelProps { /** Which surface to show. Defaults to "chat". */ state?: CopilotPanelState; brokerName?: string; subtitle?: string; onMinimize?: () => void; items?: CopilotThreadItem[]; onInstall?: () => void; onContinue?: () => void; onSignIn?: () => void; prompts?: CopilotSuggestedPrompt[]; inputValue?: string; onInputChange?: (value: string) => void; onSend?: (value: string) => void; inputPlaceholder?: string; inputDisabled?: boolean; /** Show the markdown formatting toolbar in the composer. @default true */ showMarkdownToolbar?: boolean; /** When provided, shows an attach-file button in the composer. */ onAttachFile?: (files: FileList) => void; conversations?: CopilotConversation[]; currentConversationId?: string; onSelectConversation?: (id: string) => void; onRenameConversation?: (id: string) => void; onDeleteConversation?: (id: string) => void; /** When provided, shows a "new chat" (+) control next to the history icon. */ onNewChat?: () => void; className?: string; } declare function CopilotPanel({ state, brokerName, subtitle, onMinimize, items, onInstall, onContinue, onSignIn, prompts, inputValue, onInputChange, onSend, inputPlaceholder, inputDisabled, showMarkdownToolbar, onAttachFile, conversations, currentConversationId, onSelectConversation, onRenameConversation, onDeleteConversation, onNewChat, className, }: CopilotPanelProps): react_jsx_runtime.JSX.Element; export { CopilotPanel, type CopilotPanelProps, type CopilotPanelState, type CopilotThreadItem };