import { BrowserRuntimeEvent } from '../browser/index.js'; import '../types-CHPP16pW.js'; interface ShopAssistantContext { [key: string]: unknown; } /** Customer-safe progress copy keyed by the server-side tool name. */ type ToolActivityLabels = Record; interface ProductViewDetail { productId: string; slug: string; url?: string; } interface CartAddDetail extends ProductViewDetail { variantId?: string; size?: string; color?: string; quantity: number; } interface ActionOpenDetail { url: string; label: string; } interface ShopAssistantEventMap { "promptrails:open": CustomEvent>; "promptrails:close": CustomEvent>; "promptrails:session-new": CustomEvent>; "promptrails:legal-consent": CustomEvent<{ acceptedAt: number; version: string; }>; "promptrails:product-view": CustomEvent; "promptrails:cart-add": CustomEvent; "promptrails:action-open": CustomEvent; "promptrails:feedback": CustomEvent<{ executionId: string; value: 1 | -1; }>; "promptrails:runtime": CustomEvent; "promptrails:error": CustomEvent<{ code: string; }>; } interface PromptRailsShopAssistantElement extends HTMLElement { contextProvider?: () => ShopAssistantContext | Promise; open(): void; close(): void; toggle(next: boolean): void; send(content: string): Promise; newSession(): Promise; clearVisitor(): void; updateContext(context: ShopAssistantContext): void; destroy(): void; } declare global { interface HTMLElementTagNameMap { "promptrails-shop-assistant": PromptRailsShopAssistantElement; } } export type { ActionOpenDetail, CartAddDetail, ProductViewDetail, PromptRailsShopAssistantElement, ShopAssistantContext, ShopAssistantEventMap, ToolActivityLabels };