@thoughtspot/visual-embed-sdk 1.50.1 → 1.51.0-test

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +63 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +148 -25
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +74 -37
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +571 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +375 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +21 -15
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +323 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +45 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +81 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +76 -14
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +50 -9
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +432 -4
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +28 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  49. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.d.ts +16 -8
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +82 -30
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +537 -3
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +3 -3
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js +3 -2
  60. package/cjs/src/index.js.map +1 -1
  61. package/cjs/src/mixpanel-service.d.ts +4 -0
  62. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  63. package/cjs/src/mixpanel-service.js +4 -0
  64. package/cjs/src/mixpanel-service.js.map +1 -1
  65. package/cjs/src/react/all-types-export.d.ts +1 -1
  66. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  67. package/cjs/src/react/all-types-export.js +2 -1
  68. package/cjs/src/react/all-types-export.js.map +1 -1
  69. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  70. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  71. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  72. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  73. package/cjs/src/react/index.d.ts +66 -32
  74. package/cjs/src/react/index.d.ts.map +1 -1
  75. package/cjs/src/react/index.js +5 -3
  76. package/cjs/src/react/index.js.map +1 -1
  77. package/cjs/src/react/index.spec.js +101 -0
  78. package/cjs/src/react/index.spec.js.map +1 -1
  79. package/cjs/src/types.d.ts +789 -32
  80. package/cjs/src/types.d.ts.map +1 -1
  81. package/cjs/src/types.js +610 -20
  82. package/cjs/src/types.js.map +1 -1
  83. package/cjs/src/utils.spec.js +4 -0
  84. package/cjs/src/utils.spec.js.map +1 -1
  85. package/dist/{index-fCne7kmU.js → index-Bivg-mDx.js} +1 -1
  86. package/dist/src/config.d.ts +1 -0
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/css-variables.d.ts +63 -0
  89. package/dist/src/css-variables.d.ts.map +1 -1
  90. package/dist/src/embed/app.d.ts +148 -25
  91. package/dist/src/embed/app.d.ts.map +1 -1
  92. package/dist/src/embed/base.d.ts +1 -1
  93. package/dist/src/embed/conversation.d.ts +375 -2
  94. package/dist/src/embed/conversation.d.ts.map +1 -1
  95. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  96. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  97. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  98. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  99. package/dist/src/embed/liveboard.d.ts +76 -14
  100. package/dist/src/embed/liveboard.d.ts.map +1 -1
  101. package/dist/src/embed/spotter-utils.d.ts +15 -1
  102. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  103. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  104. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  105. package/dist/src/embed/ts-embed.d.ts +16 -8
  106. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  107. package/dist/src/index.d.ts +3 -3
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/mixpanel-service.d.ts +4 -0
  110. package/dist/src/mixpanel-service.d.ts.map +1 -1
  111. package/dist/src/react/all-types-export.d.ts +1 -1
  112. package/dist/src/react/all-types-export.d.ts.map +1 -1
  113. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  114. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  115. package/dist/src/react/index.d.ts +66 -32
  116. package/dist/src/react/index.d.ts.map +1 -1
  117. package/dist/src/types.d.ts +789 -32
  118. package/dist/src/types.d.ts.map +1 -1
  119. package/dist/tsembed-react.es.js +878 -120
  120. package/dist/tsembed-react.js +877 -119
  121. package/dist/tsembed.es.js +936 -181
  122. package/dist/tsembed.js +938 -183
  123. package/dist/visual-embed-sdk-react-full.d.ts +1553 -128
  124. package/dist/visual-embed-sdk-react.d.ts +1555 -129
  125. package/dist/visual-embed-sdk.d.ts +1499 -100
  126. package/lib/package.json +1 -1
  127. package/lib/src/config.d.ts +1 -0
  128. package/lib/src/config.d.ts.map +1 -1
  129. package/lib/src/config.js +1 -0
  130. package/lib/src/config.js.map +1 -1
  131. package/lib/src/css-variables.d.ts +63 -0
  132. package/lib/src/css-variables.d.ts.map +1 -1
  133. package/lib/src/embed/app.d.ts +148 -25
  134. package/lib/src/embed/app.d.ts.map +1 -1
  135. package/lib/src/embed/app.js +75 -38
  136. package/lib/src/embed/app.js.map +1 -1
  137. package/lib/src/embed/app.spec.js +572 -151
  138. package/lib/src/embed/app.spec.js.map +1 -1
  139. package/lib/src/embed/base.d.ts +1 -1
  140. package/lib/src/embed/base.js +1 -1
  141. package/lib/src/embed/conversation.d.ts +375 -2
  142. package/lib/src/embed/conversation.d.ts.map +1 -1
  143. package/lib/src/embed/conversation.js +23 -17
  144. package/lib/src/embed/conversation.js.map +1 -1
  145. package/lib/src/embed/conversation.spec.js +323 -17
  146. package/lib/src/embed/conversation.spec.js.map +1 -1
  147. package/lib/src/embed/events.spec.js +45 -0
  148. package/lib/src/embed/events.spec.js.map +1 -1
  149. package/lib/src/embed/host-events.spec.js +81 -0
  150. package/lib/src/embed/host-events.spec.js.map +1 -1
  151. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  152. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  153. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  154. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  155. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  156. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  157. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  158. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  159. package/lib/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  160. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  161. package/lib/src/embed/liveboard.d.ts +76 -14
  162. package/lib/src/embed/liveboard.d.ts.map +1 -1
  163. package/lib/src/embed/liveboard.js +50 -9
  164. package/lib/src/embed/liveboard.js.map +1 -1
  165. package/lib/src/embed/liveboard.spec.js +432 -4
  166. package/lib/src/embed/liveboard.spec.js.map +1 -1
  167. package/lib/src/embed/spotter-utils.d.ts +15 -1
  168. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  169. package/lib/src/embed/spotter-utils.js +25 -0
  170. package/lib/src/embed/spotter-utils.js.map +1 -1
  171. package/lib/src/embed/spotter-utils.spec.js +130 -1
  172. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  173. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  174. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  175. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  176. package/lib/src/embed/ts-embed.d.ts +16 -8
  177. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  178. package/lib/src/embed/ts-embed.js +82 -30
  179. package/lib/src/embed/ts-embed.js.map +1 -1
  180. package/lib/src/embed/ts-embed.spec.js +537 -3
  181. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  182. package/lib/src/index.d.ts +3 -3
  183. package/lib/src/index.d.ts.map +1 -1
  184. package/lib/src/index.js +2 -2
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/mixpanel-service.d.ts +4 -0
  187. package/lib/src/mixpanel-service.d.ts.map +1 -1
  188. package/lib/src/mixpanel-service.js +4 -0
  189. package/lib/src/mixpanel-service.js.map +1 -1
  190. package/lib/src/react/all-types-export.d.ts +1 -1
  191. package/lib/src/react/all-types-export.d.ts.map +1 -1
  192. package/lib/src/react/all-types-export.js +1 -1
  193. package/lib/src/react/all-types-export.js.map +1 -1
  194. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  195. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  196. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  197. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  198. package/lib/src/react/index.d.ts +66 -32
  199. package/lib/src/react/index.d.ts.map +1 -1
  200. package/lib/src/react/index.js +5 -3
  201. package/lib/src/react/index.js.map +1 -1
  202. package/lib/src/react/index.spec.js +102 -1
  203. package/lib/src/react/index.spec.js.map +1 -1
  204. package/lib/src/types.d.ts +789 -32
  205. package/lib/src/types.d.ts.map +1 -1
  206. package/lib/src/types.js +610 -20
  207. package/lib/src/types.js.map +1 -1
  208. package/lib/src/utils.spec.js +4 -0
  209. package/lib/src/utils.spec.js.map +1 -1
  210. package/lib/src/visual-embed-sdk.d.ts +1499 -100
  211. package/package.json +1 -1
  212. package/src/config.ts +1 -0
  213. package/src/css-variables.ts +77 -0
  214. package/src/embed/app.spec.ts +729 -188
  215. package/src/embed/app.ts +240 -75
  216. package/src/embed/base.ts +1 -1
  217. package/src/embed/conversation.spec.ts +379 -20
  218. package/src/embed/conversation.ts +412 -18
  219. package/src/embed/events.spec.ts +56 -0
  220. package/src/embed/host-events.spec.ts +118 -0
  221. package/src/embed/hostEventClient/contracts.ts +16 -0
  222. package/src/embed/hostEventClient/host-event-client.spec.ts +46 -0
  223. package/src/embed/hostEventClient/host-event-client.ts +3 -2
  224. package/src/embed/liveboard.spec.ts +565 -4
  225. package/src/embed/liveboard.ts +150 -29
  226. package/src/embed/spotter-utils.spec.ts +140 -1
  227. package/src/embed/spotter-utils.ts +36 -1
  228. package/src/embed/spotter-viz-utils.ts +9 -10
  229. package/src/embed/ts-embed.spec.ts +699 -3
  230. package/src/embed/ts-embed.ts +99 -35
  231. package/src/index.ts +44 -2
  232. package/src/mixpanel-service.ts +4 -0
  233. package/src/react/all-types-export.parity.spec.ts +208 -0
  234. package/src/react/all-types-export.ts +22 -0
  235. package/src/react/index.spec.tsx +158 -0
  236. package/src/react/index.tsx +70 -33
  237. package/src/types.ts +791 -30
  238. package/src/utils.spec.ts +5 -0
@@ -41,6 +41,42 @@ export interface CustomCssVariables {
41
41
  * Font color of the top navigation panel.
42
42
  */
43
43
  "--ts-var-nav-color"?: string;
44
+ /**
45
+ * Background color of the left navigation panel.
46
+ */
47
+ "--ts-var-left-nav-background"?: string;
48
+ /**
49
+ * Background color of the active tab in the left navigation panel.
50
+ */
51
+ "--ts-var-left-nav-active-tab-background"?: string;
52
+ /**
53
+ * Border color of the active tab in the left navigation panel.
54
+ */
55
+ "--ts-var-left-nav-active-tab-border-color"?: string;
56
+ /**
57
+ * Font color of the section title in the left navigation panel.
58
+ */
59
+ "--ts-var-left-nav-section-title-color"?: string;
60
+ /**
61
+ * Font color of the items in the left navigation panel.
62
+ */
63
+ "--ts-var-left-nav-item-color"?: string;
64
+ /**
65
+ * Font color of the selected item in the left navigation panel.
66
+ */
67
+ "--ts-var-left-nav-item-selection-color"?: string;
68
+ /**
69
+ * Background color of the selected item in the left navigation panel.
70
+ */
71
+ "--ts-var-left-nav-item-selection-background"?: string;
72
+ /**
73
+ * Color of the active tab icon in the left navigation panel.
74
+ */
75
+ "--ts-var-left-nav-tab-icon-active-color"?: string;
76
+ /**
77
+ * Color of the inactive tab icon in the left navigation panel.
78
+ */
79
+ "--ts-var-left-nav-tab-icon-inactive-color"?: string;
44
80
  /**
45
81
  * Background color of the *Search data* button.
46
82
  */
@@ -405,6 +441,13 @@ export interface CustomCssVariables {
405
441
  * Font color of the header in the Liveboard.
406
442
  */
407
443
  "--ts-var-liveboard-header-font-color"?: string;
444
+ /**
445
+ * Left and right margin of the header and the tab/filter section of an
446
+ * embedded Liveboard. Use alongside the `liveboardGutter` view config to
447
+ * keep the header aligned with a custom tile-grid gutter.
448
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
449
+ */
450
+ "--ts-var-liveboard-header-horizontal-margin"?: string;
408
451
  /**
409
452
  * Border color of the tiles in the Liveboard.
410
453
  */
@@ -421,6 +464,18 @@ export interface CustomCssVariables {
421
464
  * Background color of the insight tiles in the Liveboard.
422
465
  */
423
466
  "--ts-var-liveboard-insight-tile-background"?: string;
467
+ /**
468
+ * Icon color of the insight tiles in the Liveboard.
469
+ */
470
+ "--ts-var-liveboard-insight-tile-icon-color"?: string;
471
+ /**
472
+ * Font color of the success text in the insight tiles in the Liveboard.
473
+ */
474
+ "--ts-var-liveboard-insight-tile-success-color"?: string;
475
+ /**
476
+ * Font color of the failure text in the insight tiles in the Liveboard.
477
+ */
478
+ "--ts-var-liveboard-insight-tile-failure-color"?: string;
424
479
  /**
425
480
  * Border radius of the tiles in the Liveboard.
426
481
  */
@@ -641,6 +696,14 @@ export interface CustomCssVariables {
641
696
  * Font color of the parameter chips in the Liveboard on active.
642
697
  */
643
698
  "--ts-var-parameter-chip-active-text-color"?: string;
699
+ /**
700
+ * Color of the dot indicator shown on a filter or parameter chip in the
701
+ * centralized filter modal on a Liveboard. The dot appears when the
702
+ * filter or parameter value has been modified but the changes are not
703
+ * yet applied to the Liveboard.
704
+ * @version SDK: 1.52.0 | ThoughtSpot: 26.10.0.cl
705
+ */
706
+ "--ts-var-unsaved-filter-indicator-color"?: string;
644
707
  /**
645
708
  * Background color of the action button in the Liveboard header.
646
709
  */
@@ -2033,6 +2096,85 @@ export interface FrameParams {
2033
2096
  */
2034
2097
  [key: string]: string | number | boolean | undefined;
2035
2098
  }
2099
+ /**
2100
+ * Configuration for the pre-render wrapper element.
2101
+ * All properties here mirror the top-level preRender properties on
2102
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2103
+ * so existing top-level usage continues to work without any changes.
2104
+ *
2105
+ * @version SDK: 1.52.0
2106
+ * @example
2107
+ * ```js
2108
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2109
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2110
+ * preRenderConfig: {
2111
+ * preRenderId: 'my-liveboard',
2112
+ * preRenderContainer: '#my-scroll-container',
2113
+ * doNotTrackPreRenderSize: false,
2114
+ * zIndex: -10,
2115
+ * },
2116
+ * });
2117
+ * embed.preRender();
2118
+ * embed.showPreRender();
2119
+ * ```
2120
+ */
2121
+ export interface PreRenderConfig {
2122
+ /**
2123
+ * Pre-render ID to identify the pre-render instance.
2124
+ * Takes precedence over the top-level `preRenderId` when both are set.
2125
+ *
2126
+ * Matches the embed warmed by `preRender()` to the one revealed by
2127
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2128
+ * the same view, and give unrelated views their own or they will collide.
2129
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2130
+ * and do nothing without it.
2131
+ *
2132
+ * @default undefined
2133
+ */
2134
+ preRenderId?: string;
2135
+ /**
2136
+ * The DOM element or CSS selector string specifying the container into
2137
+ * which the pre-rendered wrapper is inserted.
2138
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2139
+ *
2140
+ * Set this when your app scrolls inside an element rather than the page (for
2141
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2142
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2143
+ * selector string — it is re-resolved on reposition and so survives a remount,
2144
+ * while a detached element reference cannot be recovered. An invalid selector is
2145
+ * logged and falls back to `document.body`.
2146
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2147
+ *
2148
+ * @default document.body
2149
+ */
2150
+ preRenderContainer?: string | HTMLElement;
2151
+ /**
2152
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2153
+ * placeholder element.
2154
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2155
+ *
2156
+ * Set this only when you size the embed yourself; you then own alignment and must
2157
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2158
+ * already pauses while hidden, so this is not needed to avoid work then.
2159
+ *
2160
+ * @default false
2161
+ */
2162
+ doNotTrackPreRenderSize?: boolean;
2163
+ /**
2164
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2165
+ * Override this when the host page's stacking context does not reach `-1000`
2166
+ * and the hidden wrapper still appears above other elements.
2167
+ *
2168
+ * A page that creates its own stacking context — a positioned app shell, a
2169
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2170
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2171
+ * see a faint panel behind your content, or clicks landing on nothing in the
2172
+ * region where the embed will eventually appear.
2173
+ *
2174
+ * @default -1000
2175
+ */
2176
+ zIndex?: number;
2177
+ }
2036
2178
  /**
2037
2179
  * The common configuration object for an embedded view.
2038
2180
  */
@@ -2117,7 +2259,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2117
2259
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2118
2260
  * const embed = new <EmbedComponent>('#tsEmbed', {
2119
2261
  * ... // other embed view config
2120
- * hiddenActions: [Action.Download, Action.Export],
2262
+ * hiddenActions: [Action.Download, Action.ExportTML],
2121
2263
  * });
2122
2264
  * ```
2123
2265
  * @important
@@ -2139,7 +2281,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2139
2281
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2140
2282
  * const embed = new <EmbedComponent>('#tsEmbed', {
2141
2283
  * ... // other embed view config
2142
- * visibleActions: [Action.Download, Action.Export],
2284
+ * visibleActions: [Action.Download, Action.ExportTML],
2143
2285
  * });
2144
2286
  * ```
2145
2287
  */
@@ -2224,6 +2366,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2224
2366
  *
2225
2367
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2226
2368
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2369
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2227
2370
  * @example
2228
2371
  * ```js
2229
2372
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2243,6 +2386,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2243
2386
  * @type {boolean}
2244
2387
  * @default false
2245
2388
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2389
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2246
2390
  * @example
2247
2391
  * ```js
2248
2392
  * // Disable tracking PreRender size in the configuration
@@ -2284,6 +2428,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2284
2428
  *
2285
2429
  * @type {string | HTMLElement}
2286
2430
  * @version SDK: 1.49.2 | ThoughtSpot: *
2431
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2287
2432
  * @example
2288
2433
  * ```js
2289
2434
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2294,6 +2439,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2294
2439
  * ```
2295
2440
  */
2296
2441
  preRenderContainer?: string | HTMLElement;
2442
+ /**
2443
+ * Configuration for the pre-render wrapper element.
2444
+ * All properties here mirror the top-level preRender properties on
2445
+ * `BaseViewConfig` and take precedence over them when both are set,
2446
+ * so existing top-level usage continues to work without any changes.
2447
+ * See {@link PreRenderConfig} for available options.
2448
+ *
2449
+ * @version SDK: 1.52.0
2450
+ * @example
2451
+ * ```js
2452
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2453
+ * preRenderConfig: {
2454
+ * preRenderId: 'my-liveboard',
2455
+ * zIndex: -10,
2456
+ * },
2457
+ * });
2458
+ * embed.preRender();
2459
+ * embed.showPreRender();
2460
+ * ```
2461
+ */
2462
+ preRenderConfig?: PreRenderConfig;
2297
2463
  /**
2298
2464
  * Enable the V2 shell. This can provide performance benefits
2299
2465
  * due to a lighter-weight shell.
@@ -2717,7 +2883,7 @@ export interface HomePageConfig {
2717
2883
  *
2718
2884
  * const embed = new AppEmbed('#tsEmbed', {
2719
2885
  * ... //other embed view config
2720
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2886
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2721
2887
  * })
2722
2888
  * ```
2723
2889
  */
@@ -2727,7 +2893,9 @@ export interface HomePageConfig {
2727
2893
  * To specify the modules, import the `HomepageModule` enum.
2728
2894
  * For example: `hiddenHomepageModules = [HomepageModule.MyLibrary]`
2729
2895
  *
2730
- * **Note**: This attribute is not supported in the classic (v1) experience.
2896
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2897
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2898
+ * and V4 (Focused) home page experiences.
2731
2899
  *
2732
2900
  * Supported embed types: `AppEmbed`
2733
2901
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2736,7 +2904,7 @@ export interface HomePageConfig {
2736
2904
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2737
2905
  *
2738
2906
  * const embed = new AppEmbed('#tsEmbed', {
2739
- * ... // V2/V3 navigation and home page experience attributes
2907
+ * ... // V3 navigation and home page experience attributes
2740
2908
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
2741
2909
  * //...other embed view configuration attributes
2742
2910
  * })
@@ -2747,8 +2915,11 @@ export interface HomePageConfig {
2747
2915
  * Reorder home page modules.
2748
2916
  * To specify the modules, import the `HomepageModule` enum.
2749
2917
  * For example: `reorderedHomepageModules = [HomepageModule.MyLibrary,
2750
- * HomepageModule.Watchlist]` **Note**: This attribute is not supported in the
2751
- * classic (v1) homepage.
2918
+ * HomepageModule.Watchlist]`
2919
+ *
2920
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2921
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2922
+ * and V4 (Focused) home page experiences.
2752
2923
  *
2753
2924
  * Supported embed types: `AppEmbed`
2754
2925
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2757,7 +2928,7 @@ export interface HomePageConfig {
2757
2928
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2758
2929
  *
2759
2930
  * const embed = new AppEmbed('#tsEmbed', {
2760
- * ...//V2/V3 navigation and home page experience attributes
2931
+ * ...//V3 navigation and home page experience attributes
2761
2932
  * reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
2762
2933
  * //... other embed view configuration attributes
2763
2934
  * })
@@ -2769,7 +2940,9 @@ export interface HomePageConfig {
2769
2940
  * on the home page left navigation panel.
2770
2941
  * To specify the menu items, import the `HomeLeftNavItem` enum.
2771
2942
  *
2772
- * **Note**: This attribute is not supported in the classic (v1) homepage.
2943
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2944
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2945
+ * and V4 (Focused) home page experiences.
2773
2946
  *
2774
2947
  * Supported embed types: `AppEmbed`
2775
2948
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -3023,6 +3196,25 @@ export interface LiveboardAppEmbedViewConfig {
3023
3196
  * ```
3024
3197
  */
3025
3198
  enable2ColumnLayout?: boolean;
3199
+ /**
3200
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3201
+ * every width, instead of switching to the two-column or single-column
3202
+ * layout as the container narrows.
3203
+ *
3204
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3205
+ * @type {boolean}
3206
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3207
+ * @default false
3208
+ * @example
3209
+ * ```js
3210
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3211
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3212
+ * ... // other embed view config
3213
+ * isLiveboardAlwaysOn12ColLayout: true,
3214
+ * })
3215
+ * ```
3216
+ */
3217
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3026
3218
  /**
3027
3219
  * This flag can be used to enable the compact header in Liveboard
3028
3220
  *
@@ -3127,6 +3319,26 @@ export interface LiveboardAppEmbedViewConfig {
3127
3319
  * ```
3128
3320
  */
3129
3321
  coverAndFilterOptionInPDF?: boolean;
3322
+ /**
3323
+ * Sets the gutter space (in pixels) between the visualization tiles of
3324
+ * an embedded Liveboard grid layout and its outer layout padding.
3325
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3326
+ * and removes the outer padding. When omitted, the gutter saved in the
3327
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3328
+ *
3329
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3330
+ * @type {number}
3331
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3332
+ * @example
3333
+ * ```js
3334
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3335
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3336
+ * ... // other embed view config
3337
+ * liveboardGutter: 8,
3338
+ * })
3339
+ * ```
3340
+ */
3341
+ liveboardGutter?: number;
3130
3342
  /**
3131
3343
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3132
3344
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3145,6 +3357,24 @@ export interface LiveboardAppEmbedViewConfig {
3145
3357
  * ```
3146
3358
  */
3147
3359
  isCentralizedLiveboardFilterUXEnabled?: boolean;
3360
+ /**
3361
+ * This flag is used to enable or disable scoped Liveboard filtering.
3362
+ * When enabled, filters and parameters can be scoped to a group of
3363
+ * visualizations on a Liveboard, in addition to the Liveboard and
3364
+ * tab levels.
3365
+ *
3366
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3367
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3368
+ * @example
3369
+ * ```js
3370
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3371
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3372
+ * ... // other embed view config
3373
+ * isScopedLiveboardFilteringEnabled: true,
3374
+ * })
3375
+ * ```
3376
+ */
3377
+ isScopedLiveboardFilteringEnabled?: boolean;
3148
3378
  /**
3149
3379
  * This flag is used to enable or disable the link parameters in liveboard.
3150
3380
  *
@@ -3524,7 +3754,7 @@ export declare enum EmbedEvent {
3524
3754
  * @returns nonFilteredColumns - The columns that were not filtered
3525
3755
  * @example
3526
3756
  * ```js
3527
- * searchEmbed.on(EmbedEvent.DrillDown, {
3757
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3528
3758
  * points: {
3529
3759
  * clickedPoint,
3530
3760
  * selectedPoints: selectedPoint
@@ -3585,7 +3815,7 @@ export declare enum EmbedEvent {
3585
3815
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3586
3816
  * @example
3587
3817
  * ```js
3588
- * appEmbed.on(EmbedEvent.customAction, payload => {
3818
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3589
3819
  * const data = payload.data;
3590
3820
  * if (data.id === 'insert Custom Action ID here') {
3591
3821
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3851,8 +4081,8 @@ export declare enum EmbedEvent {
3851
4081
  *
3852
4082
  * **Note**: This event is deprecated in v1.21.0.
3853
4083
  * To fire an event when a download action is initiated on a chart or table,
3854
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3855
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4084
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4085
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3856
4086
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3857
4087
  * @example
3858
4088
  * ```js
@@ -3902,10 +4132,10 @@ export declare enum EmbedEvent {
3902
4132
  * @example
3903
4133
  * ```js
3904
4134
  * //emit when action starts
3905
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4135
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3906
4136
  * console.log('download CSV', payload)}, {start: true })
3907
4137
  * //emit when action ends
3908
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4138
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3909
4139
  * console.log('download CSV', payload)})
3910
4140
  * ```
3911
4141
  */
@@ -4304,11 +4534,19 @@ export declare enum EmbedEvent {
4304
4534
  * Emitted when a user changes any filter on a Liveboard.
4305
4535
  * Returns filter type and name, column name and ID, and runtime
4306
4536
  * filter details.
4537
+ * The payload includes an optional `applicability` attribute indicating the
4538
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
4539
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4540
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4541
+ * is no `targetId`, since the filter applies to the whole Liveboard.
4542
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4543
+ * ThoughtSpot: 26.10.0.cl.
4307
4544
  * @example
4308
4545
  *
4309
4546
  * ```js
4310
4547
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
4311
4548
  * console.log('payload', payload);
4549
+ * // payload.data optionally includes applicability: { level, targetId }
4312
4550
  * })
4313
4551
  * ```
4314
4552
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -4500,9 +4738,17 @@ export declare enum EmbedEvent {
4500
4738
  /**
4501
4739
  * Emitted when parameter changes in an Answer
4502
4740
  * or Liveboard.
4741
+ * The payload includes an optional `applicability` attribute indicating the
4742
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
4743
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4744
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4745
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
4746
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4747
+ * ThoughtSpot: 26.10.0.cl.
4503
4748
  * ```js
4504
4749
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
4505
4750
  * console.log('payload', payload);
4751
+ * // payload.data optionally includes applicability: { level, targetId }
4506
4752
  * })
4507
4753
  * ```
4508
4754
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -4804,6 +5050,158 @@ export declare enum EmbedEvent {
4804
5050
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4805
5051
  */
4806
5052
  SpotterConversationDeleted = "spotterConversationDeleted",
5053
+ /**
5054
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
5055
+ * to bracket the interaction. App→host counterpart of the
5056
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
5057
+ * @example
5058
+ * ```js
5059
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
5060
+ * // payload: { convId: string }
5061
+ * })
5062
+ * ```
5063
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5064
+ */
5065
+ SpotterShareConversationButtonHeaderClicked = "spotterShareConversationButtonHeaderClicked",
5066
+ /**
5067
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
5068
+ * to bracket the interaction.
5069
+ * @example
5070
+ * ```js
5071
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
5072
+ * // payload: { convId: string }
5073
+ * })
5074
+ * ```
5075
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5076
+ */
5077
+ SpotterShareConversationMenuItemSidebarClicked = "spotterShareConversationMenuItemSidebarClicked",
5078
+ /**
5079
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
5080
+ * share created). The host builds its own link from shareId/convId + its
5081
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
5082
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
5083
+ * the save resolves.
5084
+ * @example
5085
+ * ```js
5086
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
5087
+ * // payload: { convId: string, shareId: string,
5088
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
5089
+ * })
5090
+ * ```
5091
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5092
+ */
5093
+ SpotterConversationShared = "spotterConversationShared",
5094
+ /**
5095
+ * Emitted when access to a shared Spotter conversation is revoked
5096
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
5097
+ * and the share is deleted entirely.
5098
+ * @example
5099
+ * ```js
5100
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
5101
+ * // payload: { convId: string, shareId: string,
5102
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
5103
+ * })
5104
+ * ```
5105
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5106
+ */
5107
+ SpotterConversationShareRevoked = "spotterConversationShareRevoked",
5108
+ /**
5109
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
5110
+ * view). No shareId available viewer-side.
5111
+ * @example
5112
+ * ```js
5113
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
5114
+ * // payload: { convId: string, sourceConvId: string }
5115
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
5116
+ * })
5117
+ * ```
5118
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5119
+ */
5120
+ SpotterSharedConversationViewed = "spotterSharedConversationViewed",
5121
+ /**
5122
+ * Emitted when the user toggles the share-modal "include new messages since
5123
+ * last shared version" checkbox.
5124
+ * @example
5125
+ * ```js
5126
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
5127
+ * // payload: { convId: string, includeNewMessages: boolean }
5128
+ * })
5129
+ * ```
5130
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5131
+ */
5132
+ SpotterShareIncludeNewMessagesCheckboxToggled = "spotterShareIncludeNewMessagesCheckboxToggled",
5133
+ /**
5134
+ * Emitted when the user dismisses the stale-snapshot info banner via its
5135
+ * cross (distinct from the include-new-messages checkbox toggle).
5136
+ * @example
5137
+ * ```js
5138
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
5139
+ * // payload: { convId: string }
5140
+ * })
5141
+ * ```
5142
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5143
+ */
5144
+ SpotterShareStaleInfoBannerDismissed = "spotterShareStaleInfoBannerDismissed",
5145
+ /**
5146
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
5147
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
5148
+ * / `SpotterConversationShareRevoked` result events.
5149
+ * @example
5150
+ * ```js
5151
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
5152
+ * // payload: { convId: string }
5153
+ * })
5154
+ * ```
5155
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5156
+ */
5157
+ SpotterShareModalConfirmButtonClicked = "spotterShareModalConfirmButtonClicked",
5158
+ /**
5159
+ * Emitted when the share modal is dismissed via the Cancel button.
5160
+ * @example
5161
+ * ```js
5162
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
5163
+ * // payload: { convId: string }
5164
+ * })
5165
+ * ```
5166
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5167
+ */
5168
+ SpotterShareModalCancelButtonClicked = "spotterShareModalCancelButtonClicked",
5169
+ /**
5170
+ * Emitted when a recipient leaves the read-only shared view via the Exit
5171
+ * button.
5172
+ * @example
5173
+ * ```js
5174
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
5175
+ * // payload: { convId: string }
5176
+ * })
5177
+ * ```
5178
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5179
+ */
5180
+ SpotterSharedConversationExitButtonClicked = "spotterSharedConversationExitButtonClicked",
5181
+ /**
5182
+ * Emitted when a Spotter conversation is pinned.
5183
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5184
+ * @example
5185
+ * ```js
5186
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
5187
+ * console.log('Conversation pinned', payload);
5188
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
5189
+ * })
5190
+ * ```
5191
+ */
5192
+ SpotterConversationPinned = "spotterConversationPinned",
5193
+ /**
5194
+ * Emitted when a Spotter conversation is unpinned.
5195
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5196
+ * @example
5197
+ * ```js
5198
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
5199
+ * console.log('Conversation unpinned', payload);
5200
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
5201
+ * })
5202
+ * ```
5203
+ */
5204
+ SpotterConversationUnpinned = "spotterConversationUnpinned",
4807
5205
  /**
4808
5206
  * Emitted when a Spotter conversation is selected/clicked.
4809
5207
  * @example
@@ -5193,6 +5591,7 @@ export declare enum HostEvent {
5193
5591
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5194
5592
  * console.log("iFrameURL", url);
5195
5593
  * ```
5594
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5196
5595
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5197
5596
  */
5198
5597
  GetIframeUrl = "GetIframeUrl",
@@ -5319,6 +5718,17 @@ export declare enum HostEvent {
5319
5718
  * name: string,
5320
5719
  * type: ATTRIBUTE/MEASURE,
5321
5720
  * dataType: INT64/CHAR/DATE }
5721
+ *
5722
+ * `applicability` - Optional. Scopes the filter to a specific target,
5723
+ * for example, a single Liveboard tab, so the panel for the correct
5724
+ * scoped filter is opened. Available from SDK: 1.53.0 |
5725
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
5726
+ *
5727
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
5728
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5729
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5730
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
5731
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5322
5732
  * @example
5323
5733
  * ```js
5324
5734
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -5331,6 +5741,14 @@ export declare enum HostEvent {
5331
5741
  * ```
5332
5742
  * @example
5333
5743
  * ```js
5744
+ * // Open a filter scoped to a specific Liveboard tab
5745
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
5746
+ * column: { columnId: '<column-GUID>' },
5747
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
5748
+ * });
5749
+ * ```
5750
+ * @example
5751
+ * ```js
5334
5752
  * // Open filter from search context
5335
5753
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5336
5754
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -5340,6 +5758,73 @@ export declare enum HostEvent {
5340
5758
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5341
5759
  */
5342
5760
  OpenFilter = "openFilter",
5761
+ /**
5762
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5763
+ * *Add filter* button in the Liveboard edit header opens, so the host
5764
+ * app can start the add-filter flow from its own UI.
5765
+ *
5766
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5767
+ * Hiding the *Add filter* button with `hiddenActions:
5768
+ * [Action.AddFilter]` does not block this event, but disabling it with
5769
+ * `disabledActions` does.
5770
+ *
5771
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5772
+ * existing filter, this event starts the creation of a new filter.
5773
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5774
+ * @example
5775
+ * ```js
5776
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5777
+ * ```
5778
+ */
5779
+ OpenAddFilterModal = "openAddFilterModal",
5780
+ /**
5781
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5782
+ * *Add parameter* button in the Liveboard edit header opens.
5783
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5784
+ *
5785
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5786
+ * Hiding the *Add parameter* button with `hiddenActions:
5787
+ * [Action.AddParameter]` does not block this event, but disabling it
5788
+ * with `disabledActions` does.
5789
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5790
+ * @example
5791
+ * ```js
5792
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5793
+ * ```
5794
+ */
5795
+ OpenAddParameterModal = "openAddParameterModal",
5796
+ /**
5797
+ * Open the parameter panel for a particular parameter on a Liveboard.
5798
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
5799
+ * @param - Includes the following keys:
5800
+ * - `parameter`: An object identifying the parameter to open, for
5801
+ * example, `{ parameterId: '<parameter-GUID>' }`.
5802
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
5803
+ * for example, a single Liveboard tab, so the panel for the correct
5804
+ * scoped parameter is opened. Includes the following attributes:
5805
+ *
5806
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
5807
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5808
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5809
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
5810
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5811
+ * @example
5812
+ * ```js
5813
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5814
+ * parameter: { parameterId: '<parameter-GUID>' }
5815
+ * });
5816
+ * ```
5817
+ * @example
5818
+ * ```js
5819
+ * // Open a parameter scoped to a specific group
5820
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5821
+ * parameter: { parameterId: '<parameter-GUID>' },
5822
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
5823
+ * });
5824
+ * ```
5825
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5826
+ */
5827
+ OpenParameter = "openParameter",
5343
5828
  /**
5344
5829
  * Add columns to the current search query.
5345
5830
  * @param - { columnIds: string[] }
@@ -5389,6 +5874,10 @@ export declare enum HostEvent {
5389
5874
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5390
5875
  * data=>console.log(data))
5391
5876
  * ```
5877
+ * @returns data - Object with a `v2Content` string: the export request
5878
+ * payload for the current Liveboard.
5879
+ * @returns type - The passthrough event name,
5880
+ * `getExportRequestForCurrentPinboard`.
5392
5881
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5393
5882
  */
5394
5883
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5491,6 +5980,9 @@ export declare enum HostEvent {
5491
5980
  * }, ContextType.Spotter);
5492
5981
  * ```
5493
5982
  *
5983
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
5984
+ * @returns tabId - GUID of the tab within that Liveboard.
5985
+ * @returns vizId - GUID of the newly created visualization.
5494
5986
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5495
5987
  */
5496
5988
  Pin = "pin",
@@ -5529,13 +6021,13 @@ export declare enum HostEvent {
5529
6021
  * Trigger the **Manage schedule** action on an embedded Liveboard
5530
6022
  * @example
5531
6023
  * ```js
5532
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6024
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5533
6025
  * ```
5534
6026
  * @example
5535
6027
  * ```js
5536
6028
  * // Manage schedules from liveboard context
5537
6029
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5538
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6030
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5539
6031
  * ```
5540
6032
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5541
6033
  */
@@ -5980,6 +6472,7 @@ export declare enum HostEvent {
5980
6472
  * console.log(tml.answer);
5981
6473
  * });
5982
6474
  * ```
6475
+ * @returns The TML representation of the current Answer, as an object.
5983
6476
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
5984
6477
  * @important
5985
6478
  */
@@ -6403,13 +6896,13 @@ export declare enum HostEvent {
6403
6896
  /**
6404
6897
  * Get details of filters applied on the Liveboard.
6405
6898
  * Returns arrays containing Liveboard filter and runtime filter elements.
6406
- * Each Liveboard filter may include an `applicability` attribute
6899
+ * Each Liveboard filter includes an optional `applicability` attribute
6407
6900
  * indicating the scope of the filter. It contains a `level`
6408
6901
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6409
6902
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6410
6903
  * level there is no `targetId`, since the filter applies to the
6411
6904
  * whole Liveboard.
6412
- * The `applicability` attribute is available from SDK: 1.51.0 |
6905
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6413
6906
  * ThoughtSpot: 26.10.0.cl.
6414
6907
  * @example
6415
6908
  * ```js
@@ -6423,6 +6916,8 @@ export declare enum HostEvent {
6423
6916
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6424
6917
  * console.log('filters', data);
6425
6918
  * ```
6919
+ * @returns liveboardFilters - Filters applied on the Liveboard.
6920
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6426
6921
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6427
6922
  */
6428
6923
  GetFilters = "getFilters",
@@ -6452,7 +6947,7 @@ export declare enum HostEvent {
6452
6947
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
6453
6948
  *
6454
6949
  * `applicability` - Optional. Scopes the filter to a specific target,
6455
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
6950
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6456
6951
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6457
6952
  *
6458
6953
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6572,9 +7067,37 @@ export declare enum HostEvent {
6572
7067
  * console.log('tabs', tabDetails);
6573
7068
  * });
6574
7069
  * ```
7070
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7071
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7072
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6575
7073
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6576
7074
  */
6577
7075
  GetTabs = "getTabs",
7076
+ /**
7077
+ * Get group details for the current Liveboard.
7078
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
7079
+ * @example
7080
+ * ```js
7081
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
7082
+ * console.log(
7083
+ * groupDetails // GroupDetails of current Liveboard
7084
+ * );
7085
+ * })
7086
+ * ```
7087
+ * @example
7088
+ * ```js
7089
+ * // Get groups from liveboard context
7090
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
7091
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
7092
+ * console.log('groups', groupDetails);
7093
+ * });
7094
+ * ```
7095
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7096
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7097
+ * @returns Groups - Group details, each with at least `id` and `name`.
7098
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7099
+ */
7100
+ GetGroups = "getGroups",
6578
7101
  /**
6579
7102
  * Set the visible tabs on a Liveboard.
6580
7103
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -6646,6 +7169,9 @@ export declare enum HostEvent {
6646
7169
  * // Alternative direct usage (not recommended)
6647
7170
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6648
7171
  * ```
7172
+ * @returns session - Session identifier for the Answer, for use with the
7173
+ * `AnswerService`.
7174
+ * @returns embedAnswerData - Data backing the Answer, when available.
6649
7175
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6650
7176
  */
6651
7177
  GetAnswerSession = "getAnswerSession",
@@ -6703,7 +7229,7 @@ export declare enum HostEvent {
6703
7229
  * - `value`: The value to set for the parameter.
6704
7230
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
6705
7231
  * - `applicability`: Optional. Scopes the parameter to a specific target,
6706
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
7232
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6707
7233
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6708
7234
  *
6709
7235
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6747,13 +7273,13 @@ export declare enum HostEvent {
6747
7273
  UpdateParameters = "UpdateParameters",
6748
7274
  /**
6749
7275
  * Triggers GetParameters to fetch the runtime Parameters.
6750
- * Each parameter may include an `applicability` attribute
7276
+ * Each parameter includes an optional `applicability` attribute
6751
7277
  * indicating the scope of the parameter. It contains a `level`
6752
7278
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6753
7279
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6754
7280
  * level there is no `targetId`, since the parameter applies to the
6755
7281
  * whole Liveboard.
6756
- * The `applicability` attribute is available from SDK: 1.51.0 |
7282
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6757
7283
  * ThoughtSpot: 26.10.0.cl.
6758
7284
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6759
7285
  * ```js
@@ -6779,12 +7305,16 @@ export declare enum HostEvent {
6779
7305
  * console.log('parameters', parameters);
6780
7306
  * });
6781
7307
  * ```
7308
+ * @returns parameters - Parameters currently applied on the Liveboard.
6782
7309
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
6783
7310
  */
6784
7311
  GetParameters = "GetParameters",
6785
7312
  /**
6786
7313
  * Triggers an event to update a personalized view of a Liveboard.
6787
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7314
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7315
+ * which additionally accepts a `viewName`, resets to the original view when
7316
+ * called with an empty payload, and reports an error when a named view
7317
+ * cannot be found.
6788
7318
  * ```js
6789
7319
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6790
7320
  * ```
@@ -6802,10 +7332,15 @@ export declare enum HostEvent {
6802
7332
  UpdatePersonalisedView = "UpdatePersonalisedView",
6803
7333
  /**
6804
7334
  * Triggers an event to update a personalized view of a Liveboard.
7335
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7336
+ * which additionally accepts a `viewName`, resets to the original view when
7337
+ * called with an empty payload, and reports an error when a named view
7338
+ * cannot be found.
6805
7339
  * ```js
6806
7340
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6807
7341
  * ```
6808
7342
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7343
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6809
7344
  */
6810
7345
  UpdatePersonalizedView = "UpdatePersonalisedView",
6811
7346
  /**
@@ -6908,6 +7443,10 @@ export declare enum HostEvent {
6908
7443
  * description: "Generated from Spotter"
6909
7444
  * }, ContextType.Spotter);
6910
7445
  * ```
7446
+ * @returns answerId - GUID of the saved Answer.
7447
+ * @returns saveResponse - Raw response from the save operation.
7448
+ * @returns shareResponse - Raw response from the share operation, when the
7449
+ * Answer was also made discoverable.
6911
7450
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
6912
7451
  */
6913
7452
  SaveAnswer = "saveAnswer",
@@ -7022,25 +7561,55 @@ export declare enum HostEvent {
7022
7561
  */
7023
7562
  ResetSpotterConversation = "ResetSpotterConversation",
7024
7563
  /**
7025
- * Deletes the last prompt in spotter embed.
7564
+ * Opens the Spotter share-conversation modal for the given conversation.
7565
+ * `conversationId` is **mandatory** — you must pass the id of the
7566
+ * conversation to share. Also no-op when sharing is disabled
7567
+ * (enableShareConversation off) or when already in the read-only shared view.
7026
7568
  * @example
7027
7569
  * ```js
7028
- * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7570
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
7029
7571
  * ```
7030
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7572
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7031
7573
  */
7032
- DeleteLastPrompt = "DeleteLastPrompt",
7574
+ ShareSpotterConversation = "ShareSpotterConversation",
7033
7575
  /**
7034
- * Toggle the visualization to chart or table view.
7035
- * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7576
+ * Closes the Spotter share-conversation modal. No-op if none is open.
7036
7577
  * @example
7037
7578
  * ```js
7038
- * let latestSpotterVizId = '';
7039
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7040
- * latestSpotterVizId = payload.data.id;
7041
- * });
7042
- *
7043
- * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7579
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
7580
+ * ```
7581
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7582
+ */
7583
+ CloseSpotterShareConversation = "CloseSpotterShareConversation",
7584
+ /**
7585
+ * Exits the read-only shared-conversation view.
7586
+ * @example
7587
+ * ```js
7588
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
7589
+ * ```
7590
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7591
+ */
7592
+ ExitSpotterSharedConversation = "ExitSpotterSharedConversation",
7593
+ /**
7594
+ * Deletes the last prompt in spotter embed.
7595
+ * @example
7596
+ * ```js
7597
+ * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7598
+ * ```
7599
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7600
+ */
7601
+ DeleteLastPrompt = "DeleteLastPrompt",
7602
+ /**
7603
+ * Toggle the visualization to chart or table view.
7604
+ * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7605
+ * @example
7606
+ * ```js
7607
+ * let latestSpotterVizId = '';
7608
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7609
+ * latestSpotterVizId = payload.data.id;
7610
+ * });
7611
+ *
7612
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7044
7613
  * ```
7045
7614
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7046
7615
  */
@@ -7116,6 +7685,41 @@ export declare enum HostEvent {
7116
7685
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
7117
7686
  */
7118
7687
  StartNewSpotterConversation = "StartNewSpotterConversation",
7688
+ /**
7689
+ * Pins a saved Spotter conversation so it floats to the top of the past
7690
+ * conversations sidebar. The `conversationId` of the conversation to pin is
7691
+ * required.
7692
+ *
7693
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7694
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7695
+ * instance.
7696
+ *
7697
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7698
+ * @example
7699
+ * ```js
7700
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
7701
+ * conversationId: '<conversation-id>',
7702
+ * });
7703
+ * ```
7704
+ */
7705
+ PinSpotterConversation = "PinSpotterConversation",
7706
+ /**
7707
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
7708
+ * conversation to unpin is required.
7709
+ *
7710
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7711
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7712
+ * instance.
7713
+ *
7714
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7715
+ * @example
7716
+ * ```js
7717
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
7718
+ * conversationId: '<conversation-id>',
7719
+ * });
7720
+ * ```
7721
+ */
7722
+ UnpinSpotterConversation = "UnpinSpotterConversation",
7119
7723
  /**
7120
7724
  * @hidden
7121
7725
  * Get the current context of the embedded page.
@@ -7226,9 +7830,10 @@ export type SpotterFileUploadFileTypes = {
7226
7830
  * ThoughtSpot application pages include actions and menu commands
7227
7831
  * for various user-initiated operations. These actions are represented
7228
7832
  * as enumeration members in the SDK. To control actions in the embedded view:
7229
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7230
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7231
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7833
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7834
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7835
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7836
+ * are shown; all others are hidden.
7232
7837
  *
7233
7838
  * Use disabledActions to disable (gray out) an action.
7234
7839
  * Use hiddenActions to hide (fully remove) an action.
@@ -7281,6 +7886,17 @@ export declare enum Action {
7281
7886
  * ```
7282
7887
  */
7283
7888
  SaveAsView = "saveAsView",
7889
+ /**
7890
+ * The **EditInputTable** action on a Liveboard
7891
+ * page. Allows users to edit an input table used in an Answer directly from
7892
+ * a Liveboard.
7893
+ * @example
7894
+ * ```js
7895
+ * disabledActions: [Action.EditInputTable]
7896
+ * ```
7897
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7898
+ */
7899
+ EditInputTable = "editInputTable",
7284
7900
  /**
7285
7901
  * The **Make a copy** action on a Liveboard or Answer
7286
7902
  * page. Creates a copy of the Liveboard.
@@ -8482,6 +9098,19 @@ export declare enum Action {
8482
9098
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
8483
9099
  */
8484
9100
  ChangeFilterVisibilityInTab = "changeFilterVisibilityInTab",
9101
+ /**
9102
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
9103
+ * including filter, parameter, and cross-filter chips at the liveboard,
9104
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
9105
+ *
9106
+ * @example
9107
+ * ```js
9108
+ * hiddenActions: [Action.AllLiveboardFilters]
9109
+ * disabledActions: [Action.AllLiveboardFilters]
9110
+ * ```
9111
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
9112
+ */
9113
+ AllLiveboardFilters = "allLiveboardFilters",
8485
9114
  /**
8486
9115
  * The **Data model instructions** button on the Spotter interface.
8487
9116
  * Allows opening the data model instructions modal.
@@ -8583,6 +9212,10 @@ export declare enum Action {
8583
9212
  * The **Add to Coaching** feature allows adding reference questions and
8584
9213
  * business terms to improve Spotter’s responses. This feature is generally available
8585
9214
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9215
+ *
9216
+ * This action governs both the answer-card **Add to memory** CTA and its
9217
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9218
+ * (they are mutually exclusive).
8586
9219
  * @example
8587
9220
  * ```js
8588
9221
  * hiddenAction: [Action.InConversationTraining]
@@ -8817,6 +9450,89 @@ export declare enum Action {
8817
9450
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8818
9451
  */
8819
9452
  SpotterChatRename = "spotterChatRename",
9453
+ /**
9454
+ * Controls visibility and disable state of the Spotter conversation Share
9455
+ * button in the chat header. Only takes effect once sharing is enabled
9456
+ * (enableShareConversation on).
9457
+ * @example
9458
+ * ```js
9459
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
9460
+ * ```
9461
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9462
+ */
9463
+ SpotterShareConversationButtonHeader = "spotterShareConversationButtonHeader",
9464
+ /**
9465
+ * Controls visibility and disable state of the Share item in the Spotter
9466
+ * conversation history (sidebar) edit menu. Independent of the header button
9467
+ * above, so a host can show Share in one entry point and hide it in the other.
9468
+ * @example
9469
+ * ```js
9470
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
9471
+ * ```
9472
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9473
+ */
9474
+ SpotterShareConversationMenuItemSidebar = "spotterShareConversationMenuItemSidebar",
9475
+ /**
9476
+ * Controls visibility of the entire read-only shared-conversation data-access
9477
+ * banner shown when a recipient opens a shared view. Hide-only.
9478
+ * @example
9479
+ * ```js
9480
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
9481
+ * ```
9482
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9483
+ */
9484
+ SpotterSharedConversationBanner = "spotterSharedConversationBanner",
9485
+ /**
9486
+ * Controls visibility and disable state of the cross/close button on the
9487
+ * read-only shared-conversation data-access banner (keeps the banner itself).
9488
+ * @example
9489
+ * ```js
9490
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
9491
+ * ```
9492
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9493
+ */
9494
+ SpotterSharedConversationBannerDismissButton = "spotterSharedConversationBannerDismissButton",
9495
+ /**
9496
+ * Controls visibility and disable state of the Exit button in the read-only
9497
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
9498
+ * host event.
9499
+ * @example
9500
+ * ```js
9501
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
9502
+ * ```
9503
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9504
+ */
9505
+ SpotterSharedConversationExitButton = "spotterSharedConversationExitButton",
9506
+ /**
9507
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
9508
+ * to the current moment…"). Hide-only.
9509
+ * @example
9510
+ * ```js
9511
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
9512
+ * ```
9513
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9514
+ */
9515
+ SpotterShareUpToCurrentInfo = "spotterShareUpToCurrentInfo",
9516
+ /**
9517
+ * Controls visibility and disable state of the share-modal "include new
9518
+ * messages since last shared version" checkbox.
9519
+ * @example
9520
+ * ```js
9521
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
9522
+ * ```
9523
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9524
+ */
9525
+ SpotterShareIncludeNewMessagesCheckbox = "spotterShareIncludeNewMessagesCheckbox",
9526
+ /**
9527
+ * Controls visibility and disable state of the cross on the share-modal
9528
+ * stale-snapshot info banner.
9529
+ * @example
9530
+ * ```js
9531
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
9532
+ * ```
9533
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9534
+ */
9535
+ SpotterShareStaleInfoBannerDismissButton = "spotterShareStaleInfoBannerDismissButton",
8820
9536
  /**
8821
9537
  * Controls visibility and disable state of the delete action
8822
9538
  * in the Spotter conversation edit menu.
@@ -8827,6 +9543,16 @@ export declare enum Action {
8827
9543
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8828
9544
  */
8829
9545
  SpotterChatDelete = "spotterChatDelete",
9546
+ /**
9547
+ * Controls visibility and disable state of the pin/unpin action
9548
+ * in the Spotter conversation edit menu.
9549
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9550
+ * @example
9551
+ * ```js
9552
+ * disabledActions: [Action.SpotterChatPin]
9553
+ * ```
9554
+ */
9555
+ SpotterChatPin = "spotterChatPin",
8830
9556
  /**
8831
9557
  * Controls visibility and disable state of the documentation/best practices
8832
9558
  * link in the Spotter sidebar footer.
@@ -8870,6 +9596,56 @@ export declare enum Action {
8870
9596
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
8871
9597
  */
8872
9598
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9599
+ /**
9600
+ * The **Basic Search** starter prompt pill.
9601
+ *
9602
+ * Starter prompt pills are the row of category buttons shown above the
9603
+ * Spotter chat input before a conversation starts. They give a new user
9604
+ * ready-made questions to click instead of typing one from scratch, and
9605
+ * disappear once the conversation begins. There are three, one per action
9606
+ * below.
9607
+ *
9608
+ * Clicking this pill opens a card of suggested simple questions; picking one
9609
+ * submits it to Spotter right away. Visible by default, and hidden along
9610
+ * with the other pills when the surface itself is off (see
9611
+ * {@link SpotterChatViewConfig.starterPrompts}).
9612
+ * @example
9613
+ * ```js
9614
+ * hiddenActions: [Action.QuickSearchPill]
9615
+ * ```
9616
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9617
+ */
9618
+ QuickSearchPill = "quickSearchPill",
9619
+ /**
9620
+ * The **Deep Analysis** starter prompt pill, next to
9621
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9622
+ *
9623
+ * Clicking it opens a card of suggested investigative questions ("why did
9624
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9625
+ * rather than submitting immediately, so the user can edit it first.
9626
+ * Visible by default.
9627
+ * @example
9628
+ * ```js
9629
+ * hiddenActions: [Action.DeepAnalysisPill]
9630
+ * ```
9631
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9632
+ */
9633
+ DeepAnalysisPill = "deepAnalysisPill",
9634
+ /**
9635
+ * The **Data Literacy** starter prompt pill, next to
9636
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9637
+ *
9638
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9639
+ * that describes the data the model can answer over, helping a user who does
9640
+ * not yet know what is in the data source. The prompt text always comes from
9641
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9642
+ * @example
9643
+ * ```js
9644
+ * hiddenActions: [Action.DataLiteracyPill]
9645
+ * ```
9646
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9647
+ */
9648
+ DataLiteracyPill = "dataLiteracyPill",
8873
9649
  /**
8874
9650
  * The **Include current period** checkbox for date filters.
8875
9651
  * Controls the visibility and availability of the option to include
@@ -9017,7 +9793,39 @@ export declare enum Action {
9017
9793
  * disabledActions: [Action.SpotterAnalystSidebar]
9018
9794
  * ```
9019
9795
  */
9020
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9796
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9797
+ /**
9798
+ * Controls visibility and disable state of the analyst list
9799
+ * ("Show all") in the Spotter Analyst interface.
9800
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9801
+ * @example
9802
+ * ```js
9803
+ * hiddenActions: [Action.SpotterAnalystList]
9804
+ * disabledActions: [Action.SpotterAnalystList]
9805
+ * ```
9806
+ */
9807
+ SpotterAnalystList = "spotterAnalystList",
9808
+ /**
9809
+ * Controls visibility and disable state of the default Spotter analyst
9810
+ * entry in the Spotter Analyst interface.
9811
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9812
+ * @example
9813
+ * ```js
9814
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9815
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9816
+ * ```
9817
+ */
9818
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9819
+ /**
9820
+ * The **Spotter** button in the Liveboard header.
9821
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9822
+ * @example
9823
+ * ```js
9824
+ * hiddenActions: [Action.SpotterOnLiveboard]
9825
+ * disabledActions: [Action.SpotterOnLiveboard]
9826
+ * ```
9827
+ */
9828
+ SpotterOnLiveboard = "spotterOnLiveboard"
9021
9829
  }
9022
9830
  export declare enum PrefetchFeatures {
9023
9831
  FullApp = "FullApp",
@@ -9401,7 +10209,7 @@ export type ApiInterceptFlags = {
9401
10209
  * const embed = new LiveboardEmbed('#embed', {
9402
10210
  * ...viewConfig,
9403
10211
  * enableApiIntercept: true,
9404
- * interceptUrls: [InterceptedApiType.DATA],
10212
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9405
10213
  * })
9406
10214
  * ```
9407
10215
  *
@@ -10027,7 +10835,15 @@ export interface LiveboardTab {
10027
10835
  name: string;
10028
10836
  [key: string]: any;
10029
10837
  }
10030
- declare enum ApplicabilityLevel {
10838
+ export interface LiveboardGroup {
10839
+ id: string;
10840
+ name: string;
10841
+ [key: string]: any;
10842
+ }
10843
+ /**
10844
+ * Levels at which a filter or parameter can be applied.
10845
+ */
10846
+ export declare enum ApplicabilityLevel {
10031
10847
  Liveboard = "LIVEBOARD",
10032
10848
  Tab = "TAB",
10033
10849
  Group = "GROUP"
@@ -10072,6 +10888,7 @@ export declare enum UIPassthroughEvent {
10072
10888
  GetParameters = "getParameters",
10073
10889
  GetTML = "getTML",
10074
10890
  GetTabs = "getTabs",
10891
+ GetGroups = "getGroups",
10075
10892
  GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
10076
10893
  }
10077
10894
  export type UIPassthroughContractBase = {
@@ -10181,6 +10998,14 @@ export type UIPassthroughContractBase = {
10181
10998
  Tabs: LiveboardTab[];
10182
10999
  };
10183
11000
  };
11001
+ [UIPassthroughEvent.GetGroups]: {
11002
+ request: Record<string, never>;
11003
+ response: {
11004
+ orderedGroupIds: string[];
11005
+ numberOfGroups: number;
11006
+ Groups: LiveboardGroup[];
11007
+ };
11008
+ };
10184
11009
  [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
10185
11010
  request: Record<string, never>;
10186
11011
  response: {
@@ -10226,6 +11051,7 @@ export type EmbedApiHostEventMapping = {
10226
11051
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
10227
11052
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
10228
11053
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
11054
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
10229
11055
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
10230
11056
  };
10231
11057
  export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
@@ -10281,7 +11107,7 @@ declare class HostEventClient {
10281
11107
  * @param payload - Optional payload for the event
10282
11108
  * @param context - Optional context (e.g. vizId) for scoped operations
10283
11109
  */
10284
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11110
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10285
11111
  }
10286
11112
  declare class TsEmbed {
10287
11113
  /**
@@ -10486,6 +11312,12 @@ declare class TsEmbed {
10486
11312
  protected getEmbedParamsObject(): Record<any, any>;
10487
11313
  protected getRootIframeSrc(): string;
10488
11314
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11315
+ /**
11316
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11317
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11318
+ * backward compatibility.
11319
+ */
11320
+ protected getPreRenderConfig(): PreRenderConfig;
10489
11321
  /**
10490
11322
  * Returns true if this embed instance is configured for pre-rendering.
10491
11323
  */
@@ -10524,12 +11356,14 @@ declare class TsEmbed {
10524
11356
  * fresh element; an element passed directly cannot be re-resolved.
10525
11357
  */
10526
11358
  private resolvePreRenderContainerTarget;
11359
+ private inheritPreRenderContainer;
11360
+ private getCustomPreRenderContainer;
10527
11361
  /**
10528
- * Makes the container a positioning context for the absolutely positioned
10529
- * wrapper, stashing the original inline `position` on the element (once) so
10530
- * destroy() can restore it exactly, leaving no trace. Recording it on the
10531
- * element rather than per-instance lets the override be reverted even when
10532
- * embeds share the same container.
11362
+ * Makes the resolved container a positioning context for the absolutely
11363
+ * positioned wrapper, stashing the original inline `position` on the element
11364
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11365
+ * on the element rather than per-instance lets the override be reverted even
11366
+ * when embeds share the same container.
10533
11367
  */
10534
11368
  private applyPreRenderContainerPositioning;
10535
11369
  /**
@@ -10677,7 +11511,7 @@ declare class TsEmbed {
10677
11511
  * ```
10678
11512
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
10679
11513
  */
10680
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11514
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
10681
11515
  /**
10682
11516
  * Triggers an event to the embedded app, skipping the UI flow.
10683
11517
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11331,6 +12165,37 @@ declare enum SpotterQueryMode {
11331
12165
  FAST_SEARCH = "fastSearch",
11332
12166
  RESEARCH = "research"
11333
12167
  }
12168
+ /**
12169
+ * Configuration for the pin/unpin conversation feature in the Spotter sidebar.
12170
+ * Grouped into one object because pin exposes several related settings
12171
+ * (enable + label overrides), unlike single-item actions like rename or
12172
+ * delete.
12173
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12174
+ */
12175
+ export interface SpotterChatPinConfig {
12176
+ /**
12177
+ * Enables the pin/unpin conversation feature in embedded Spotter. Disabled
12178
+ * by default — hosts must opt in. When off, the Pin/Unpin menu entry and
12179
+ * the pin glyph are hidden and the PinSpotterConversation /
12180
+ * UnpinSpotterConversation host events are no-ops. Native (non-embedded)
12181
+ * Spotter is unaffected and ships pin enabled.
12182
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12183
+ * @default false
12184
+ */
12185
+ enabled?: boolean;
12186
+ /**
12187
+ * Custom label text for the pin action in the conversation edit menu.
12188
+ * Defaults to translated "Pin" text.
12189
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12190
+ */
12191
+ pinLabel?: string;
12192
+ /**
12193
+ * Custom label text for the unpin action in the conversation edit menu.
12194
+ * Defaults to translated "Unpin" text.
12195
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12196
+ */
12197
+ unpinLabel?: string;
12198
+ }
11334
12199
  /**
11335
12200
  * Configuration for the Spotter sidebar.
11336
12201
  * Can be used in SpotterEmbed and AppEmbed.
@@ -11368,6 +12233,12 @@ export interface SpotterSidebarViewConfig {
11368
12233
  * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
11369
12234
  */
11370
12235
  spotterChatDeleteLabel?: string;
12236
+ /**
12237
+ * Pin/unpin conversation feature config (enable + label overrides).
12238
+ * Off by default in embed — hosts opt in via `enabled`.
12239
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12240
+ */
12241
+ spotterChatPinConfig?: SpotterChatPinConfig;
11371
12242
  /**
11372
12243
  * Custom title text for the delete conversation confirmation modal.
11373
12244
  * Defaults to translated "Delete chat" text.
@@ -11418,6 +12289,165 @@ export interface SpotterSidebarViewConfig {
11418
12289
  */
11419
12290
  spotterAnalystsLabel?: string;
11420
12291
  }
12292
+ /**
12293
+ * Configuration for the Spotter conversation sharing feature.
12294
+ * Can be used in SpotterEmbed and AppEmbed.
12295
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12296
+ * @group Embed components
12297
+ */
12298
+ export interface SpotterShareConversationConfig {
12299
+ /**
12300
+ * Enables sharing of the conversation.
12301
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12302
+ * @default false
12303
+ */
12304
+ enableShareConversation?: boolean;
12305
+ /**
12306
+ * Header Share button + sidebar Share item label.
12307
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12308
+ * @default "Share"
12309
+ */
12310
+ spotterShareLabel?: string;
12311
+ /**
12312
+ * Share modal title.
12313
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12314
+ */
12315
+ spotterShareModalTitle?: string;
12316
+ /**
12317
+ * Modal confirm button label.
12318
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12319
+ * @default "Share"
12320
+ */
12321
+ spotterShareConfirmLabel?: string;
12322
+ /**
12323
+ * Modal cancel button label.
12324
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12325
+ * @default "Cancel"
12326
+ */
12327
+ spotterShareCancelLabel?: string;
12328
+ /**
12329
+ * "Add users or groups" label.
12330
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12331
+ */
12332
+ spotterShareAddUsersLabel?: string;
12333
+ /**
12334
+ * Empty-state title ("No users added yet").
12335
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12336
+ */
12337
+ spotterShareEmptyTitle?: string;
12338
+ /**
12339
+ * Empty-state subtitle ("Not shared with any user").
12340
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12341
+ */
12342
+ spotterShareEmptySubtitle?: string;
12343
+ /**
12344
+ * "Include new messages since last shared version" checkbox label.
12345
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12346
+ */
12347
+ spotterShareIncludeNewMessagesLabel?: string;
12348
+ /**
12349
+ * Footer note when the snapshot is current ("…up to the current moment…").
12350
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12351
+ */
12352
+ spotterShareUpToCurrentLabel?: string;
12353
+ /**
12354
+ * Stale-snapshot info banner text ("All added users and groups will receive…").
12355
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12356
+ */
12357
+ spotterShareStaleInfoLabel?: string;
12358
+ /**
12359
+ * Read-only shared-view data-access banner message.
12360
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12361
+ */
12362
+ spotterSharedConversationBannerMessage?: string;
12363
+ /**
12364
+ * Read-only shared-view Exit button label.
12365
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12366
+ * @default "Exit"
12367
+ */
12368
+ spotterSharedConversationExitLabel?: string;
12369
+ }
12370
+ /**
12371
+ * A single starter prompt question shown under a category pill.
12372
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12373
+ * @group Embed components
12374
+ */
12375
+ export interface StarterPromptQuestion {
12376
+ /**
12377
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12378
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12379
+ */
12380
+ label?: string;
12381
+ /**
12382
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12383
+ * 300 characters.
12384
+ */
12385
+ prompt: string;
12386
+ }
12387
+ /**
12388
+ * Configuration for a starter prompt category with questions
12389
+ * (`quick` and `research`).
12390
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12391
+ * @group Embed components
12392
+ */
12393
+ export interface StarterPromptCategory {
12394
+ /**
12395
+ * Overrides the default category pill label. ThoughtSpot truncates it
12396
+ * beyond 30 characters.
12397
+ */
12398
+ label?: string;
12399
+ /**
12400
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12401
+ * and drops any entry without a `prompt`.
12402
+ */
12403
+ questions?: StarterPromptQuestion[];
12404
+ }
12405
+ /**
12406
+ * Configuration for the Data Literacy starter prompt category.
12407
+ * Only the label is customizable; the prompt text comes from the backend.
12408
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12409
+ * @group Embed components
12410
+ */
12411
+ export interface StarterPreviewDataCategory {
12412
+ /**
12413
+ * Overrides the default category pill label. ThoughtSpot truncates it
12414
+ * beyond 30 characters.
12415
+ */
12416
+ label?: string;
12417
+ }
12418
+ /**
12419
+ * Content configuration for the Spotter starter prompts.
12420
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12421
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12422
+ *
12423
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12424
+ * the Liveboard SpotterViz surface are configured separately through
12425
+ * {@link SpotterVizConfig.customStarterPrompts}.
12426
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12427
+ * @group Embed components
12428
+ */
12429
+ export interface StarterPromptsConfig {
12430
+ /**
12431
+ * Turns the starter prompts surface on. Must be set explicitly, an
12432
+ * unset flag leaves the surface off.
12433
+ *
12434
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12435
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12436
+ * @default false
12437
+ */
12438
+ enable?: boolean;
12439
+ /** Basic Search category configuration. */
12440
+ quick?: StarterPromptCategory;
12441
+ /** Deep Analysis category configuration. */
12442
+ research?: StarterPromptCategory;
12443
+ /** Data Literacy category configuration. */
12444
+ previewData?: StarterPreviewDataCategory;
12445
+ /**
12446
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12447
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12448
+ */
12449
+ liveboard?: StarterPromptQuestion[];
12450
+ }
11421
12451
  /**
11422
12452
  * Configuration for customizing Spotter chat UI branding.
11423
12453
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -11458,11 +12488,83 @@ export interface SpotterChatViewConfig {
11458
12488
  /**
11459
12489
  * Enables starter prompts in the Spotter chat interface.
11460
12490
  *
11461
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12491
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12492
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12493
+ *
12494
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
11462
12495
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
11463
12496
  * @default false
11464
12497
  */
11465
12498
  enableStarterPrompts?: boolean;
12499
+ /**
12500
+ * Customizes the labels and questions of the Spotter starter prompts.
12501
+ * Individual pills are hidden or shown with `hiddenActions` /
12502
+ * `visibleActions` using `Action.QuickSearchPill`,
12503
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12504
+ *
12505
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12506
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12507
+ * @example
12508
+ * ```js
12509
+ * const embed = new SpotterEmbed('#tsEmbed', {
12510
+ * worksheetId: 'worksheet-id',
12511
+ * hiddenActions: [Action.DeepAnalysisPill],
12512
+ * spotterChatConfig: {
12513
+ * starterPrompts: {
12514
+ * enable: true,
12515
+ * quick: {
12516
+ * label: 'Quick questions',
12517
+ * questions: [
12518
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12519
+ * ],
12520
+ * },
12521
+ * previewData: { label: 'Explore your data' },
12522
+ * },
12523
+ * },
12524
+ * })
12525
+ * ```
12526
+ */
12527
+ starterPrompts?: StarterPromptsConfig;
12528
+ /**
12529
+ * Opens the Spotter chat panel when the Liveboard loads.
12530
+ *
12531
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12532
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12533
+ * @default true
12534
+ * @example
12535
+ * ```js
12536
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12537
+ * liveboardId: 'liveboard-id',
12538
+ * spotterChatConfig: {
12539
+ * openSpotterOnLiveboardByDefault: false,
12540
+ * },
12541
+ * })
12542
+ * ```
12543
+ */
12544
+ openSpotterOnLiveboardByDefault?: boolean;
12545
+ }
12546
+ /**
12547
+ * Configuration for the Spotter Analyst experience.
12548
+ * Can be used in SpotterEmbed.
12549
+ * @group Embed components
12550
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12551
+ * @example
12552
+ * ```js
12553
+ * const embed = new SpotterEmbed('#tsEmbed', {
12554
+ * ... //other embed view config
12555
+ * spotterAnalystConfig: {
12556
+ * analystId: 'analyst-id-1234',
12557
+ * },
12558
+ * })
12559
+ * ```
12560
+ */
12561
+ export interface SpotterAnalystConfig {
12562
+ /**
12563
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12564
+ * and no "Show all".
12565
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12566
+ */
12567
+ analystId?: string;
11466
12568
  }
11467
12569
  /**
11468
12570
  * The configuration for the embedded spotterEmbed options.
@@ -11472,8 +12574,43 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11472
12574
  /**
11473
12575
  * The ID of the data source object. For example, Model, View, or Table. Spotter uses
11474
12576
  * this object to query data and generate Answers.
12577
+ * This field is optional. If not provided, Spotter loads using the
12578
+ * previously selected user data source.
11475
12579
  */
11476
- worksheetId: string;
12580
+ worksheetId?: string;
12581
+ /**
12582
+ * The array of data source GUIDs to set on load. Spotter uses
12583
+ * these GUIDs to query data and generate Answers.
12584
+ * dataSources is preferred over worksheetId if both are provided.
12585
+ * The feature is currently behind a feature flag.
12586
+ *
12587
+ * Supported embed types: `SpotterEmbed`
12588
+ * @example
12589
+ * ```js
12590
+ * const embed = new SpotterEmbed('#tsEmbed', {
12591
+ * // ...other embed view config
12592
+ * dataSources: ['id-2345', 'id-2345'],
12593
+ * });
12594
+ * ```
12595
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12596
+ */
12597
+ dataSources?: string[];
12598
+ /**
12599
+ * Configuration for the Spotter Analyst experience.
12600
+ *
12601
+ * Supported embed types: `SpotterEmbed`
12602
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12603
+ * @example
12604
+ * ```js
12605
+ * const embed = new SpotterEmbed('#tsEmbed', {
12606
+ * ... //other embed view config
12607
+ * spotterAnalystConfig: {
12608
+ * analystId: 'analyst-id-1234',
12609
+ * },
12610
+ * })
12611
+ * ```
12612
+ */
12613
+ spotterAnalystConfig?: SpotterAnalystConfig;
11477
12614
  /**
11478
12615
  * Ability to pass a starting search query to the conversation.
11479
12616
  */
@@ -11633,6 +12770,21 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11633
12770
  * ```
11634
12771
  */
11635
12772
  updatedSpotterChatPrompt?: boolean;
12773
+ /**
12774
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
12775
+ *
12776
+ * Supported embed types: `SpotterEmbed`
12777
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12778
+ * @default false
12779
+ * @example
12780
+ * ```js
12781
+ * const embed = new SpotterEmbed('#tsEmbed', {
12782
+ * ... //other embed view config
12783
+ * showSpotterRadiance : true,
12784
+ * })
12785
+ * ```
12786
+ */
12787
+ showSpotterRadiance?: boolean;
11636
12788
  /**
11637
12789
  * Sets the default query mode when Spotter loads — Fast Search or
11638
12790
  * Research Mode. Applies fresh on every new session for this embed
@@ -11709,6 +12861,59 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11709
12861
  * ```
11710
12862
  */
11711
12863
  spotterChatConfig?: SpotterChatViewConfig;
12864
+ /**
12865
+ * Configuration for the Spotter conversation sharing feature.
12866
+ *
12867
+ * Supported embed types: `SpotterEmbed`, `AppEmbed`
12868
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12869
+ * @example
12870
+ * ```js
12871
+ * const embed = new SpotterEmbed('#tsEmbed', {
12872
+ * ... //other embed view config
12873
+ * spotterShareConversationConfig: {
12874
+ * enableShareConversation: true,
12875
+ * },
12876
+ * })
12877
+ * ```
12878
+ */
12879
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
12880
+ /**
12881
+ * The ID of a shared Spotter conversation to open directly in the read-only
12882
+ * reader view. Use this to land a share recipient in the shared conversation
12883
+ * when they open a host-configured `CONVERSATION_URL` share link: read the
12884
+ * `{conversation-id}` from your page URL and pass it here.
12885
+ *
12886
+ * Requires the Spotter conversation-sharing feature to be enabled
12887
+ * (`spotterShareConversationConfig.enableShareConversation`). The recipient
12888
+ * must be an authorized sharee — the server returns access-denied otherwise.
12889
+ *
12890
+ * Supported embed types: `SpotterEmbed`
12891
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12892
+ * @example
12893
+ * ```js
12894
+ * const convId = new URLSearchParams(window.location.search).get('conversation-id');
12895
+ * const embed = new SpotterEmbed('#tsEmbed', {
12896
+ * ... //other embed view config
12897
+ * sharedConversationId: convId,
12898
+ * })
12899
+ * ```
12900
+ */
12901
+ sharedConversationId?: string;
12902
+ /**
12903
+ * updatedSpotterExperience : Controls the updated Spotter experience.
12904
+ *
12905
+ * Supported embed types: `SpotterEmbed`
12906
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12907
+ * @default false
12908
+ * @example
12909
+ * ```js
12910
+ * const embed = new SpotterEmbed('#tsEmbed', {
12911
+ * ... //other embed view config
12912
+ * updatedSpotterExperience : true,
12913
+ * })
12914
+ * ```
12915
+ */
12916
+ updatedSpotterExperience?: boolean;
11712
12917
  }
11713
12918
  /**
11714
12919
  * The configuration for the embedded spotterEmbed options.
@@ -11725,7 +12930,9 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
11725
12930
  export interface SpotterAppInitData extends DefaultAppInitData {
11726
12931
  embedParams?: {
11727
12932
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12933
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
11728
12934
  visualOverridesParams?: VisualizationOverrides | null;
12935
+ starterPrompts?: StarterPromptsConfig;
11729
12936
  };
11730
12937
  }
11731
12938
  declare class SpotterEmbed extends TsEmbed {
@@ -11783,13 +12990,12 @@ export interface SpotterVizStarterPrompt {
11783
12990
  * customStarterPrompts: [
11784
12991
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
11785
12992
  * ],
11786
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12993
+ * // The options below require SDK: 1.51.0
11787
12994
  * loaderHeadline: 'Crunching the numbers...',
11788
12995
  * loaderTips: [
11789
12996
  * { label: 'Tip', text: 'try asking about revenue by region' },
11790
12997
  * { label: 'Tip', text: 'use natural language' },
11791
12998
  * ],
11792
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11793
12999
  * liveboardBrandName: 'Reports',
11794
13000
  * spotterBrandName: 'Analyst',
11795
13001
  * insightTileBrandName: 'Insight card',
@@ -11842,47 +13048,47 @@ export interface SpotterVizConfig {
11842
13048
  /**
11843
13049
  * Custom headline text shown in the SpotterViz loading state.
11844
13050
  * Replaces the default loading headline.
11845
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13051
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11846
13052
  */
11847
13053
  loaderHeadline?: string;
11848
13054
  /**
11849
13055
  * Custom tips shown in the SpotterViz loading state.
11850
13056
  * Replaces the default loading tips with the provided list.
11851
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13057
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11852
13058
  */
11853
13059
  loaderTips?: SpotterVizLoaderTip[];
11854
13060
  /**
11855
13061
  * Custom term used to replace "Liveboard" in the agent's responses.
11856
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13062
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11857
13063
  * @default ''
11858
13064
  */
11859
13065
  liveboardBrandName?: string;
11860
13066
  /**
11861
13067
  * Custom term used to replace "Spotter" in the agent's responses.
11862
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13068
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11863
13069
  * @default ''
11864
13070
  */
11865
13071
  spotterBrandName?: string;
11866
13072
  /**
11867
13073
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
11868
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13074
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11869
13075
  * @default ''
11870
13076
  */
11871
13077
  insightTileBrandName?: string;
11872
13078
  /**
11873
13079
  * Custom term used to replace "View plan" in the insight tile menu.
11874
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13080
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11875
13081
  */
11876
13082
  insightTileViewPlanLabel?: string;
11877
13083
  /**
11878
13084
  * Custom loader text shown on the insight tile.
11879
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13085
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11880
13086
  */
11881
13087
  insightTileLoaderText?: string;
11882
13088
  }
11883
13089
  /**
11884
13090
  * A single tip shown in the SpotterViz loading state.
11885
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13091
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11886
13092
  * @group Embed components
11887
13093
  */
11888
13094
  export interface SpotterVizLoaderTip {
@@ -11930,7 +13136,11 @@ export declare enum Page {
11930
13136
  /**
11931
13137
  * Collections listing page
11932
13138
  */
11933
- Collections = "collections"
13139
+ Collections = "collections",
13140
+ /**
13141
+ * Liveboard schedules listing page
13142
+ */
13143
+ LiveboardSchedules = "liveboard-schedules"
11934
13144
  }
11935
13145
  /**
11936
13146
  * Define the initial state of column custom group accordions
@@ -11967,6 +13177,9 @@ declare enum HomePage {
11967
13177
  /**
11968
13178
  * Modular (v2) introduces the updated Modular Home Experience.
11969
13179
  * It serves as the foundational version of the home page.
13180
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
13181
+ * {@link HomePage.Focused} (V4) instead.
13182
+ * @deprecated V1 and V2 home page experiences are deprecated.
11970
13183
  */
11971
13184
  Modular = "v2",
11972
13185
  /**
@@ -12036,13 +13249,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12036
13249
  showPrimaryNavbar?: boolean;
12037
13250
  /**
12038
13251
  * Control the visibility of the left navigation panel on the home page
12039
- * in the V2 and V3 navigation and home page experience.
13252
+ * in the V3 and V4 navigation and home page experience.
12040
13253
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
12041
13254
  * navigation bars are visible, this flag will only hide the left navigation bar
12042
13255
  * on the home page.
12043
13256
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
12044
13257
  *
12045
- * **Note**: This attribute is not supported in the classic (V1) experience.
13258
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
13259
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
12046
13260
  *
12047
13261
  * Supported embed types: `AppEmbed`
12048
13262
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12108,11 +13322,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12108
13322
  hideHamburger?: boolean;
12109
13323
  /**
12110
13324
  * Control the visibility of the object search
12111
- * on the top navigation bar in the
12112
- * V2 and V3 navigation experience.
13325
+ * on the top navigation bar in the V3 navigation experience.
12113
13326
  *
12114
- * **Note**: This attribute is not supported
12115
- * in the classic (V1) experience.
13327
+ * **Note**: The classic (V1) and V2 navigation experiences are
13328
+ * deprecated. This attribute applies to the V3 navigation experience.
12116
13329
  *
12117
13330
  * Supported embed types: `AppEmbed`
12118
13331
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -12130,8 +13343,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12130
13343
  * Control the visibility of the notification icon
12131
13344
  * on the top navigation bar in V3 navigation experience.
12132
13345
  *
12133
- * **Note**: This attribute is not supported
12134
- * in the classic (V1) and V2 experience modes.
13346
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
13347
+ * This attribute applies to the V3 experience.
12135
13348
  *
12136
13349
  * Supported embed types: `AppEmbed`
12137
13350
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -12146,14 +13359,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12146
13359
  */
12147
13360
  hideNotification?: boolean;
12148
13361
  /**
12149
- * Control the visibility of the application selection menu
12150
- * in the top navigation bar in the V2 experience.
13362
+ * Control the visibility of the application selection menu.
12151
13363
  * In the V3 experience, it shows or hides application selection
12152
13364
  * icons on the left navigation panel.
12153
13365
  * By default, the application selection menu and icons are
12154
13366
  * shown in the UI.
12155
13367
  *
12156
- * **Note**: This attribute is not supported in the classic (V1) experience.
13368
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
13369
+ * This attribute applies to the V3 experience.
12157
13370
  *
12158
13371
  * Supported embed types: `AppEmbed`
12159
13372
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12171,7 +13384,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12171
13384
  * Control the visibility of the Org switcher button on the nav-bar.
12172
13385
  * By default, the Org switcher button is shown.
12173
13386
  *
12174
- * **Note**: This attribute is not supported in the classic (V1) experience.
13387
+ * **Note**: The classic (V1) experience is deprecated. This attribute
13388
+ * applies to V2 (deprecated), V3 and V4 experiences.
12175
13389
  *
12176
13390
  * Supported embed types: `AppEmbed`
12177
13391
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12312,6 +13526,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12312
13526
  * `false` fetches visualizations incrementally as
12313
13527
  * users scroll the page to view the charts and tables.
12314
13528
  *
13529
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13530
+ * {@link lazyLoadingForFullHeight} and
13531
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13532
+ * they scroll into view. Set either flag to `false` to opt out.
13533
+ *
12315
13534
  * Supported embed types: `AppEmbed`
12316
13535
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12317
13536
  * @example
@@ -12330,6 +13549,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12330
13549
  * Supported embed types: `AppEmbed`
12331
13550
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
12332
13551
  * @default false
13552
+ * Use the discoveryExperience.homePage option with
13553
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
13554
+ * {@link HomePage.Focused} (V4) instead.
13555
+ * @deprecated The V1 and V2 home page experiences are deprecated.
12333
13556
  * @example
12334
13557
  * ```js
12335
13558
  * const embed = new AppEmbed('#tsEmbed', {
@@ -12461,11 +13684,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12461
13684
  /**
12462
13685
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
12463
13686
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
12464
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
13687
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
12465
13688
  *
12466
13689
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12467
13690
  * @type {boolean}
12468
13691
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
13692
+ * @default true
12469
13693
  * @example
12470
13694
  * ```js
12471
13695
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12478,10 +13702,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12478
13702
  isContinuousLiveboardPDFEnabled?: boolean;
12479
13703
  /**
12480
13704
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
13705
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12481
13706
  *
12482
13707
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12483
13708
  * @type {boolean}
12484
13709
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13710
+ * @default true
12485
13711
  * @example
12486
13712
  * ```js
12487
13713
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12494,10 +13720,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12494
13720
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
12495
13721
  /**
12496
13722
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
13723
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12497
13724
  *
12498
13725
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12499
13726
  * @type {boolean}
12500
13727
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13728
+ * @default true
12501
13729
  * @example
12502
13730
  * ```js
12503
13731
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12509,11 +13737,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12509
13737
  */
12510
13738
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12511
13739
  /**
12512
- * This flag is used to enable the full height lazy load data.
13740
+ * Loads visualizations only as they scroll into the viewport, instead of
13741
+ * loading the whole full-height Liveboard at once.
13742
+ *
13743
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13744
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13745
+ * set explicitly. Set it to `false` to load every visualization upfront.
13746
+ * The flag has no effect unless `fullHeight` is enabled.
12513
13747
  *
12514
13748
  * @type {boolean}
12515
13749
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12516
- * @default false
13750
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12517
13751
  * @example
12518
13752
  * ```js
12519
13753
  * const embed = new AppEmbed('#embed-container', {
@@ -12525,27 +13759,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12525
13759
  */
12526
13760
  lazyLoadingForFullHeight?: boolean;
12527
13761
  /**
12528
- * This flag is used to enable container-aware full height lazy loading.
13762
+ * Computes the visible region of the embed against its scrollable and
13763
+ * clipping ancestors, instead of treating the browser window as the only
13764
+ * viewport, and tracks scroll and resize on those ancestors.
12529
13765
  *
12530
- * Use this when the embed is rendered inside a scrollable or clipping
12531
- * container instead of relying on the browser window as the only viewport.
13766
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13767
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13768
+ * set explicitly. Set it to `false` when the page scrolls with the window
13769
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13770
+ * tracking.
12532
13771
  *
12533
13772
  * @type {boolean}
12534
- * @default false
13773
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12535
13774
  * @hidden
12536
13775
  */
12537
13776
  enableScrollableContainerLazyLoading?: boolean;
12538
13777
  /**
12539
- * The margin to be used for lazy loading.
13778
+ * How far outside the viewport a visualization starts loading, when
13779
+ * {@link lazyLoadingForFullHeight} is enabled.
12540
13780
  *
12541
13781
  * For example, if the margin is set to '10px',
12542
13782
  * the visualization will be loaded 10px before its top edge is visible in the
12543
13783
  * viewport.
12544
13784
  *
12545
- * The format is similar to CSS margin.
13785
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13786
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13787
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13788
+ * `auto`; an invalid value is logged and ignored.
13789
+ *
13790
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13791
+ * visualization ahead of the scroll position, so a chart has usually
13792
+ * finished loading by the time it scrolls into view. Use a smaller margin
13793
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13794
+ * only once it is actually visible.
12546
13795
  *
12547
13796
  * @type {string}
12548
13797
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13798
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12549
13799
  * @example
12550
13800
  * ```js
12551
13801
  * const embed = new AppEmbed('#embed-container', {
@@ -12573,6 +13823,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12573
13823
  * ```
12574
13824
  */
12575
13825
  updatedSpotterChatPrompt?: boolean;
13826
+ /**
13827
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
13828
+ *
13829
+ * Supported embed types: `AppEmbed`
13830
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13831
+ * @default false
13832
+ * @example
13833
+ * ```js
13834
+ * const embed = new AppEmbed('#tsEmbed', {
13835
+ * ... //other embed view config
13836
+ * showSpotterRadiance : true,
13837
+ * })
13838
+ * ```
13839
+ */
13840
+ showSpotterRadiance?: boolean;
12576
13841
  /**
12577
13842
  * Sets the default query mode when Spotter loads — Fast Search or
12578
13843
  * Research Mode. Applies fresh on every new session for this embed
@@ -12617,6 +13882,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12617
13882
  * spotterSidebarConfig: {
12618
13883
  * enablePastConversationsSidebar: true,
12619
13884
  * spotterSidebarTitle: 'My Conversations',
13885
+ * // Opt in to pin/unpin conversations in embedded Spotter
13886
+ * spotterChatPinConfig: {
13887
+ * enabled: true,
13888
+ * },
12620
13889
  * },
12621
13890
  * })
12622
13891
  * ```
@@ -12640,6 +13909,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12640
13909
  * ```
12641
13910
  */
12642
13911
  spotterChatConfig?: SpotterChatViewConfig;
13912
+ /**
13913
+ * Configuration for the Spotter conversation sharing feature.
13914
+ *
13915
+ * Supported embed types: `AppEmbed`
13916
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13917
+ * @example
13918
+ * ```js
13919
+ * const embed = new AppEmbed('#tsEmbed', {
13920
+ * ... //other embed view config
13921
+ * spotterShareConversationConfig: {
13922
+ * enableShareConversation: true,
13923
+ * },
13924
+ * })
13925
+ * ```
13926
+ */
13927
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13928
+ /**
13929
+ * Sets the default data sources (Models) for the Spotter experience shown on
13930
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
13931
+ * preselect the data sources available to Spotter, or the literal
13932
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
13933
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
13934
+ * Auto mode in `SpotterEmbed`.
13935
+ *
13936
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
13937
+ * `'auto_mode'` takes precedence and is selected by default.
13938
+ *
13939
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
13940
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
13941
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
13942
+ *
13943
+ * Supported embed types: `AppEmbed`
13944
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
13945
+ * @example
13946
+ * ```js
13947
+ * const embed = new AppEmbed('#tsEmbed', {
13948
+ * ... // other embed view config
13949
+ * discoveryExperience: { homePage: HomePage.Focused },
13950
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
13951
+ * })
13952
+ * ```
13953
+ */
13954
+ spotterDataSources?: string[];
12643
13955
  /**
12644
13956
  * Configuration for the SpotterViz interface shown on the Liveboard.
12645
13957
  * Customize the brand name, description, chat input placeholder,
@@ -12658,13 +13970,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12658
13970
  * inputChatPlaceholder: 'Ask a question...',
12659
13971
  * hideStarterPrompts: false,
12660
13972
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
12661
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13973
+ * // The options below require SDK: 1.51.0
12662
13974
  * loaderHeadline: 'Crunching the numbers...',
12663
13975
  * loaderTips: [
12664
13976
  * { label: 'Tip', text: 'try asking about revenue by region' },
12665
13977
  * { label: 'Tip', text: 'use natural language' },
12666
13978
  * ],
12667
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12668
13979
  * liveboardBrandName: 'Reports',
12669
13980
  * spotterBrandName: 'Analyst',
12670
13981
  * insightTileBrandName: 'Insight card',
@@ -12735,6 +14046,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12735
14046
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12736
14047
  */
12737
14048
  visualOverrides?: VisualizationOverrides;
14049
+ /**
14050
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14051
+ *
14052
+ * Supported embed types: `AppEmbed`
14053
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14054
+ * @default false
14055
+ * @example
14056
+ * ```js
14057
+ * const embed = new AppEmbed('#tsEmbed', {
14058
+ * ... //other embed view config
14059
+ * updatedSpotterExperience : true,
14060
+ * })
14061
+ * ```
14062
+ */
14063
+ updatedSpotterExperience?: boolean;
12738
14064
  }
12739
14065
  /**
12740
14066
  * APP_INIT data shape for AppEmbed.
@@ -12744,6 +14070,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
12744
14070
  embedParams?: {
12745
14071
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12746
14072
  spotterVizConfig?: SpotterVizConfig;
14073
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
14074
+ starterPrompts?: StarterPromptsConfig;
12747
14075
  };
12748
14076
  }
12749
14077
  declare class AppEmbed extends V1Embed {
@@ -12770,6 +14098,7 @@ declare class AppEmbed extends V1Embed {
12770
14098
  * embedded Liveboard or visualization.
12771
14099
  */
12772
14100
  protected getEmbedParams(): string;
14101
+ protected getEmbedParamsObject(): any;
12773
14102
  private sendFullHeightLazyLoadData;
12774
14103
  /**
12775
14104
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -12837,6 +14166,7 @@ declare class AppEmbed extends V1Embed {
12837
14166
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
12838
14167
  embedParams?: {
12839
14168
  spotterVizConfig?: SpotterVizConfig;
14169
+ starterPrompts?: StarterPromptsConfig;
12840
14170
  };
12841
14171
  }
12842
14172
  /**
@@ -12855,6 +14185,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12855
14185
  * Setting `fullHeight` to `false` fetches visualizations
12856
14186
  * incrementally as users scroll the page to view the charts and tables.
12857
14187
  *
14188
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14189
+ * {@link lazyLoadingForFullHeight} and
14190
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14191
+ * they scroll into view. Set either flag to `false` to opt out.
14192
+ *
12858
14193
  *
12859
14194
  * Supported embed types: `LiveboardEmbed`
12860
14195
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -13194,11 +14529,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13194
14529
  /**
13195
14530
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
13196
14531
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
13197
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
14532
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
13198
14533
  *
13199
14534
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13200
14535
  * @type {boolean}
13201
14536
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
14537
+ * @default true
13202
14538
  * @example
13203
14539
  * ```js
13204
14540
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13211,10 +14547,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13211
14547
  isContinuousLiveboardPDFEnabled?: boolean;
13212
14548
  /**
13213
14549
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
14550
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13214
14551
  *
13215
14552
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13216
14553
  * @type {boolean}
13217
14554
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14555
+ * @default true
13218
14556
  * @example
13219
14557
  * ```js
13220
14558
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13227,10 +14565,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13227
14565
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
13228
14566
  /**
13229
14567
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
14568
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13230
14569
  *
13231
14570
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13232
14571
  * @type {boolean}
13233
14572
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14573
+ * @default true
13234
14574
  * @example
13235
14575
  * ```js
13236
14576
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13242,11 +14582,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13242
14582
  */
13243
14583
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13244
14584
  /**
13245
- * This flag is used to enable the full height lazy load data.
14585
+ * Loads visualizations only as they scroll into the viewport, instead of
14586
+ * loading the whole full-height Liveboard at once.
14587
+ *
14588
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14589
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14590
+ * set explicitly. Set it to `false` to load every visualization upfront.
14591
+ * The flag has no effect unless `fullHeight` is enabled.
13246
14592
  *
13247
14593
  * @type {boolean}
13248
14594
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13249
- * @default false
14595
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13250
14596
  * @example
13251
14597
  * ```js
13252
14598
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13258,26 +14604,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13258
14604
  */
13259
14605
  lazyLoadingForFullHeight?: boolean;
13260
14606
  /**
13261
- * This flag is used to enable container-aware full height lazy loading.
14607
+ * Computes the visible region of the embed against its scrollable and
14608
+ * clipping ancestors, instead of treating the browser window as the only
14609
+ * viewport, and tracks scroll and resize on those ancestors.
13262
14610
  *
13263
- * Use this when the embed is rendered inside a scrollable or clipping
13264
- * container instead of relying on the browser window as the only viewport.
14611
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14612
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14613
+ * set explicitly. Set it to `false` when the page scrolls with the window
14614
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14615
+ * tracking.
13265
14616
  *
13266
14617
  * @type {boolean}
13267
- * @default false
14618
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13268
14619
  */
13269
14620
  enableScrollableContainerLazyLoading?: boolean;
13270
14621
  /**
13271
- * The margin to be used for lazy loading.
14622
+ * How far outside the viewport a visualization starts loading, when
14623
+ * {@link lazyLoadingForFullHeight} is enabled.
13272
14624
  *
13273
14625
  * For example, if the margin is set to '10px',
13274
14626
  * the visualization will be loaded 10px before its top edge is visible in the
13275
14627
  * viewport.
13276
14628
  *
13277
- * The format is similar to CSS margin.
14629
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14630
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14631
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14632
+ * `auto`; an invalid value is logged and ignored.
14633
+ *
14634
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14635
+ * visualization ahead of the scroll position, so a chart has usually
14636
+ * finished loading by the time it scrolls into view. Use a smaller margin
14637
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14638
+ * only once it is actually visible.
13278
14639
  *
13279
14640
  * @type {string}
13280
14641
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14642
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13281
14643
  * @example
13282
14644
  * ```js
13283
14645
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13321,6 +14683,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13321
14683
  * ```
13322
14684
  */
13323
14685
  updatedSpotterChatPrompt?: boolean;
14686
+ /**
14687
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
14688
+ *
14689
+ * Supported embed types: `LiveboardEmbed`
14690
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14691
+ * @default false
14692
+ * @example
14693
+ * ```js
14694
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14695
+ * ... //other embed view config
14696
+ * showSpotterRadiance : true,
14697
+ * })
14698
+ * ```
14699
+ */
14700
+ showSpotterRadiance?: boolean;
13324
14701
  /**
13325
14702
  * Enables the stop answer generation button in the Spotter embed UI,
13326
14703
  * allowing users to interrupt an ongoing answer generation.
@@ -13366,13 +14743,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13366
14743
  * inputChatPlaceholder: 'Ask a question...',
13367
14744
  * hideStarterPrompts: false,
13368
14745
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13369
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14746
+ * // The options below require SDK: 1.51.0
13370
14747
  * loaderHeadline: 'Crunching the numbers...',
13371
14748
  * loaderTips: [
13372
14749
  * { label: 'Tip', text: 'try asking about revenue by region' },
13373
14750
  * { label: 'Tip', text: 'use natural language' },
13374
14751
  * ],
13375
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13376
14752
  * liveboardBrandName: 'Reports',
13377
14753
  * spotterBrandName: 'Analyst',
13378
14754
  * insightTileBrandName: 'Insight card',
@@ -13396,6 +14772,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13396
14772
  * ```
13397
14773
  */
13398
14774
  enableLiveboardDataCache?: boolean;
14775
+ /**
14776
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14777
+ *
14778
+ * Supported embed types: `LiveboardEmbed`
14779
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14780
+ * @default false
14781
+ * @example
14782
+ * ```js
14783
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14784
+ * ... //other embed view config
14785
+ * updatedSpotterExperience : true,
14786
+ * })
14787
+ * ```
14788
+ */
14789
+ updatedSpotterExperience?: boolean;
13399
14790
  }
13400
14791
  declare class LiveboardEmbed extends V1Embed {
13401
14792
  protected viewConfig: LiveboardViewConfig;
@@ -13453,7 +14844,7 @@ declare class LiveboardEmbed extends V1Embed {
13453
14844
  * @param {any} data The payload to send with the message
13454
14845
  * @returns A promise that resolves with the response from the embedded app
13455
14846
  */
13456
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14847
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
13457
14848
  /**
13458
14849
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
13459
14850
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -13531,7 +14922,7 @@ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeature
13531
14922
  /**
13532
14923
  * Initializes the Visual Embed SDK globally and perform
13533
14924
  * authentication if applicable. This function needs to be called before any ThoughtSpot
13534
- * component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
14925
+ * component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
13535
14926
  * to actually embed. That is handled internally.
13536
14927
  * @param embedConfig The configuration object containing ThoughtSpot host,
13537
14928
  * authentication mechanism and so on.
@@ -13662,35 +15053,69 @@ export declare function uploadMixpanelEvent(eventId: string, eventProps?: {}): v
13662
15053
  export declare const resetCachedAuthToken: () => void;
13663
15054
  export interface SearchProps extends EmbedProps, SearchViewConfig {
13664
15055
  }
13665
- export interface PreRenderProps {
15056
+ /**
15057
+ * The PreRendered components require a preRender id. It can be supplied either
15058
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
15059
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
15060
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
15061
+ *
15062
+ * Use PreRender to render the embed in the background and then
15063
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
15064
+ * @example
15065
+ * ```tsx
15066
+ * // Preferred, SDK: 1.52.0 and later.
15067
+ * function LandingPageComponent() {
15068
+ * return <PreRenderedLiveboardEmbed
15069
+ * preRenderConfig={{ preRenderId: "someId" }}
15070
+ * liveboardId="libId"
15071
+ * />
15072
+ * }
15073
+ *
15074
+ * function MyComponent() {
15075
+ * return <LiveboardEmbed
15076
+ * preRenderConfig={{ preRenderId: "someId" }}
15077
+ * liveboardId="libId"
15078
+ * />
15079
+ * }
15080
+ * ```
15081
+ * @example
15082
+ * ```tsx
15083
+ * // Deprecated top-level preRenderId, still supported.
15084
+ * function LandingPageComponent() {
15085
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
15086
+ * }
15087
+ * ```
15088
+ */
15089
+ export type PreRenderProps = {
13666
15090
  /**
13667
15091
  * PreRender id to be used for PreRendering the embed.
13668
- * Use PreRender to render the embed in the background and then
13669
- * show or hide the rendered embed using showPreRender or hidePreRender respectively.
13670
- *
13671
- * Use PreRendered react component for pre rendering embed components.
13672
15092
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
13673
- * @example
13674
- * ```js
13675
- * const embed = new LiveboardEmbed('#embed', {
13676
- * ... // other liveboard view config
13677
- * preRenderId: "preRenderId-123"
13678
- * });
13679
- * embed.showPreRender();
13680
- * ```
13681
- * @example
13682
- * ```tsx
13683
- * function LandingPageComponent() {
13684
- * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
13685
- * }
13686
- * ```
13687
- * function MyComponent() {
13688
- * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
13689
- * }
13690
- * ```
15093
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
13691
15094
  */
13692
15095
  preRenderId: string;
13693
- }
15096
+ /**
15097
+ * Configuration for the pre-render wrapper element.
15098
+ * See {@link PreRenderConfig} for available options.
15099
+ * @version SDK: 1.52.0
15100
+ */
15101
+ preRenderConfig?: PreRenderConfig;
15102
+ } | {
15103
+ /**
15104
+ * PreRender id to be used for PreRendering the embed.
15105
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
15106
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
15107
+ */
15108
+ preRenderId?: string;
15109
+ /**
15110
+ * Configuration for the pre-render wrapper element. `preRenderId` is
15111
+ * required here when the top-level `preRenderId` prop is not passed.
15112
+ * See {@link PreRenderConfig} for available options.
15113
+ * @version SDK: 1.52.0
15114
+ */
15115
+ preRenderConfig: PreRenderConfig & {
15116
+ preRenderId: string;
15117
+ };
15118
+ };
13694
15119
  /**
13695
15120
  * React component for Search Embed.
13696
15121
  * @example
@@ -13704,7 +15129,7 @@ export interface PreRenderProps {
13704
15129
  * ```
13705
15130
  */
13706
15131
  declare const SearchEmbed$1: React$1.ForwardRefExoticComponent<SearchProps & React$1.RefAttributes<SearchEmbed>>;
13707
- export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<SearchProps & PreRenderProps & React$1.RefAttributes<SearchEmbed>>;
15132
+ export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<(SearchProps & PreRenderProps) & React$1.RefAttributes<SearchEmbed>>;
13708
15133
  export interface AppProps extends EmbedProps, AppViewConfig {
13709
15134
  }
13710
15135
  /**
@@ -13739,7 +15164,7 @@ declare const AppEmbed$1: React$1.ForwardRefExoticComponent<AppProps & React$1.R
13739
15164
  * }
13740
15165
  * ```
13741
15166
  */
13742
- export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<AppProps & PreRenderProps & React$1.RefAttributes<AppEmbed>>;
15167
+ export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<(AppProps & PreRenderProps) & React$1.RefAttributes<AppEmbed>>;
13743
15168
  export interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
13744
15169
  }
13745
15170
  /**
@@ -13778,7 +15203,7 @@ declare const LiveboardEmbed$1: React$1.ForwardRefExoticComponent<LiveboardProps
13778
15203
  * }
13779
15204
  * ```
13780
15205
  */
13781
- export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
15206
+ export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
13782
15207
  export interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
13783
15208
  }
13784
15209
  /**
@@ -13812,7 +15237,7 @@ declare const SearchBarEmbed$1: React$1.ForwardRefExoticComponent<SearchBarEmbed
13812
15237
  * }
13813
15238
  * ```
13814
15239
  */
13815
- export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React$1.RefAttributes<SearchBarEmbed>>;
15240
+ export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<(SearchBarEmbedProps & PreRenderProps) & React$1.RefAttributes<SearchBarEmbed>>;
13816
15241
  export interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
13817
15242
  }
13818
15243
  export interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
@@ -13905,7 +15330,7 @@ export declare const SpotterMessage: React$1.ForwardRefExoticComponent<{
13905
15330
  * }
13906
15331
  * ```
13907
15332
  */
13908
- export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<SpotterEmbedProps & PreRenderProps & React$1.RefAttributes<SpotterEmbed>>;
15333
+ export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<(SpotterEmbedProps & PreRenderProps) & React$1.RefAttributes<SpotterEmbed>>;
13909
15334
  export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof LiveboardEmbed$1 | typeof SearchBarEmbed$1 | typeof ConversationMessage$1 | typeof SpotterMessage | typeof SpotterEmbed$1 | typeof ConversationEmbed$1;
13910
15335
  /**
13911
15336
  * Get a reference to the embed component to trigger events on the component.
@@ -13915,7 +15340,7 @@ export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof L
13915
15340
  * const ref = useEmbedRef();
13916
15341
  * useEffect(() => {
13917
15342
  * ref.current.trigger(
13918
- * EmbedEvent.UpdateRuntimeFilter,
15343
+ * HostEvent.UpdateRuntimeFilters,
13919
15344
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
13920
15345
  * }, [])
13921
15346
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />