/** * Public configuration surface for the chat widget. * * A host page configures the widget either declaratively (HTML attributes on the * `` element) or programmatically (passing this object to * {@link mountChatWidget} / `element.configure(...)`). */ export interface ChatWidgetTheme { /** Foreground text color for the widget chrome. */ text?: string; /** Panel background color. */ background?: string; /** Primary accent (launcher button, send button, outbound bubble). */ primary?: string; /** Text color rendered on top of `primary`. */ primaryText?: string; /** Inbound (assistant) chat bubble background. */ assistantBubble?: string; /** Inbound (assistant) chat bubble text color. */ assistantBubbleText?: string; /** Outbound (user) chat bubble background. Defaults to `primary`. */ userBubble?: string; /** Outbound (user) chat bubble text color. Defaults to `primaryText`. */ userBubbleText?: string; /** Border color for the panel and input. */ border?: string; } /** * Layout mode for the widget. * * - `"popover"` (default) — the embeddable launcher bubble + floating panel. * - `"fullpage"` — no launcher; the chat fills its container/viewport with a * branded header, a scrollable message list, and an input bar. Ideal for a * dedicated support page (`/chat`, a docs site sidebar, an iframe, …). */ export type ChatWidgetMode = 'popover' | 'fullpage'; export interface ChatWidgetConfig { /** * smooth-operator WebSocket endpoint, e.g. * `ws://localhost:8787/ws` (local dev) or your deployed `wss://…/ws` URL. */ endpoint: string; /** * Layout mode — `"popover"` (default, launcher + floating panel) or * `"fullpage"` (chat fills its container; no launcher). See {@link ChatWidgetMode}. */ mode?: ChatWidgetMode; /** UUID of the agent to start a conversation session with. */ agentId: string; /** Display name for the agent (header label). Defaults to "Assistant". */ agentName?: string; /** Optional display name for the user participant. */ userName?: string; /** Optional email address for the user participant. */ userEmail?: string; /** Placeholder text for the message input. */ placeholder?: string; /** Greeting rendered when the conversation opens (before any messages). */ greeting?: string; /** Message shown when the connection cannot be (re)established. */ connectionErrorMessage?: string; /** Start the panel open instead of collapsed to the launcher. */ startOpen?: boolean; /** Theme overrides. */ theme?: ChatWidgetTheme; } /** Resolve a partial config against the built-in defaults. */ export declare function resolveConfig(config: ChatWidgetConfig): Required> & { theme: Required; userName?: string; userEmail?: string; }; //# sourceMappingURL=config.d.ts.map