@graph8/sdk 0.251.0 → 0.260.0

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 (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,877 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.salesCoach` (Sales Coach): 37 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"add_interview_member_sales_coach_interviews__interview_id__members_post">;
9
+ *
10
+ * Reference with examples: salesCoach.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.salesCoach.<member>` -> the operationId it calls. */
15
+ export interface SalesCoachMembers {
16
+ addInterviewMember: "add_interview_member_sales_coach_interviews__interview_id__members_post";
17
+ assignTeamRole: "assign_team_role_sales_coach_team_users__user_id__role_put";
18
+ createCall: "create_call_sales_coach_calls_post";
19
+ createInterview: "create_interview_sales_coach_interviews_post";
20
+ createInterviewAttempt: "create_interview_attempt_sales_coach_interview_attempts_post";
21
+ createInterviewAttemptByCode: "create_interview_attempt_by_code_sales_coach_interview_attempts_by_code__code__post";
22
+ createTeamLeaderboard: "create_team_leaderboard_sales_coach_team_leaderboards_post";
23
+ createTeamSet: "create_team_set_sales_coach_team_sets_post";
24
+ deleteCall: "delete_call_sales_coach_calls__call_id__delete";
25
+ deleteInterview: "delete_interview_sales_coach_interviews__interview_id__delete";
26
+ deleteTeamLeaderboard: "delete_team_leaderboard_sales_coach_team_leaderboards__lb_id__delete";
27
+ deleteTeamSet: "delete_team_set_sales_coach_team_sets__set_id__delete";
28
+ getCall: "get_call_sales_coach_calls__call_id__get";
29
+ getCallAudioUrl: "get_call_audio_url_sales_coach_calls__call_id__audio_url_get";
30
+ getCallTranscript: "get_call_transcript_sales_coach_calls__call_id__transcript_get";
31
+ getInterview: "get_interview_sales_coach_interviews__interview_id__get";
32
+ getInterviewByCode: "get_interview_by_code_sales_coach_interviews_by_code__code__get";
33
+ getSalesCoachLeaderboard: "get_sales_coach_leaderboard_sales_coach_leaderboard_get";
34
+ getTeamActiveUsersSummary: "get_team_active_users_summary_sales_coach_team_active_users_summary_get";
35
+ getTeamBootstrap: "get_team_bootstrap_sales_coach_team_bootstrap_get";
36
+ getTeamConfig: "get_team_config_sales_coach_team_config_get";
37
+ getTeamKpiCatalog: "get_team_kpi_catalog_sales_coach_team_kpi_catalog_get";
38
+ getTeamLeaderboardData: "get_team_leaderboard_data_sales_coach_team_leaderboards__lb_id__data_get";
39
+ getTeamSetData: "get_team_set_data_sales_coach_team_sets__set_id__data_get";
40
+ listCalls: "list_calls_sales_coach_calls_get";
41
+ listCoachContactLists: "list_coach_contact_lists_sales_coach_contact_lists_get";
42
+ listInterviewAttempts: "list_interview_attempts_sales_coach_interview_attempts_get";
43
+ listInterviews: "list_interviews_sales_coach_interviews_get";
44
+ listTeamLeaderboards: "list_team_leaderboards_sales_coach_team_leaderboards_get";
45
+ listTeamRoles: "list_team_roles_sales_coach_team_roles_get";
46
+ listTeamSets: "list_team_sets_sales_coach_team_sets_get";
47
+ searchCoachProspects: "search_coach_prospects_sales_coach_prospects_search_get";
48
+ sendInterviewInvite: "send_interview_invite_sales_coach_interviews__interview_id__members__member_id__send_invite_post";
49
+ updateCall: "update_call_sales_coach_calls__call_id__put";
50
+ updateTeamConfig: "update_team_config_sales_coach_team_config_put";
51
+ updateTeamLeaderboard: "update_team_leaderboard_sales_coach_team_leaderboards__lb_id__put";
52
+ updateTeamSet: "update_team_set_sales_coach_team_sets__set_id__put";
53
+ }
54
+
55
+ /** Input and output of every `g8.api.salesCoach` operation, keyed by operationId. */
56
+ export interface SalesCoachOperations {
57
+ /**
58
+ * POST /sales-coach/interviews/{interview_id}/members
59
+ * Add Interview Member
60
+ * tier: external · scope: team:run
61
+ */
62
+ add_interview_member_sales_coach_interviews__interview_id__members_post: {
63
+ input: {
64
+ path: {
65
+ /** Interview round id (UUID). */
66
+ interview_id: string;
67
+ };
68
+ headers?: {
69
+ "X-Target-Org-Id"?: string | null;
70
+ };
71
+ body: AddInterviewMemberRequest;
72
+ };
73
+ output: ApiResponse_CoachPayload_;
74
+ };
75
+ /**
76
+ * PUT /sales-coach/team/users/{user_id}/role
77
+ * Assign Team Role
78
+ * tier: destructive · scope: team:delete
79
+ */
80
+ assign_team_role_sales_coach_team_users__user_id__role_put: {
81
+ input: {
82
+ path: {
83
+ /** The member to re-role. */
84
+ user_id: string;
85
+ };
86
+ headers?: {
87
+ "X-Target-Org-Id"?: string | null;
88
+ };
89
+ body: AssignTeamRoleRequest;
90
+ };
91
+ output: ApiResponse_TeamPayload_;
92
+ };
93
+ /**
94
+ * POST /sales-coach/calls
95
+ * Create Call
96
+ * tier: write · scope: team:write
97
+ */
98
+ create_call_sales_coach_calls_post: {
99
+ input: {
100
+ headers?: {
101
+ "X-Target-Org-Id"?: string | null;
102
+ };
103
+ body: CreateCallRequest;
104
+ };
105
+ output: ApiResponse_CoachPayload_;
106
+ };
107
+ /**
108
+ * POST /sales-coach/interviews
109
+ * Create Interview
110
+ * tier: write · scope: team:write
111
+ */
112
+ create_interview_sales_coach_interviews_post: {
113
+ input: {
114
+ headers?: {
115
+ "X-Target-Org-Id"?: string | null;
116
+ };
117
+ body: CreateInterviewRequest;
118
+ };
119
+ output: ApiResponse_CoachPayload_;
120
+ };
121
+ /**
122
+ * POST /sales-coach/interview-attempts
123
+ * Create Interview Attempt
124
+ * tier: write · scope: team:write
125
+ */
126
+ create_interview_attempt_sales_coach_interview_attempts_post: {
127
+ input: {
128
+ headers?: {
129
+ "X-Target-Org-Id"?: string | null;
130
+ };
131
+ body: CreateInterviewAttemptRequest;
132
+ };
133
+ output: ApiResponse_CoachPayload_;
134
+ };
135
+ /**
136
+ * POST /sales-coach/interview-attempts/by-code/{code}
137
+ * Create Interview Attempt By Code
138
+ * tier: write · scope: team:write
139
+ */
140
+ create_interview_attempt_by_code_sales_coach_interview_attempts_by_code__code__post: {
141
+ input: {
142
+ path: {
143
+ /** The member's invite code. Matched case-insensitively. */
144
+ code: string;
145
+ };
146
+ headers?: {
147
+ "X-Target-Org-Id"?: string | null;
148
+ };
149
+ body: CreateInterviewAttemptByCodeRequest;
150
+ };
151
+ output: ApiResponse_CoachPayload_;
152
+ };
153
+ /**
154
+ * POST /sales-coach/team/leaderboards
155
+ * Create Team Leaderboard
156
+ * tier: write · scope: team:write
157
+ */
158
+ create_team_leaderboard_sales_coach_team_leaderboards_post: {
159
+ input: {
160
+ headers?: {
161
+ "X-Target-Org-Id"?: string | null;
162
+ };
163
+ body: LeaderboardConfigRequest;
164
+ };
165
+ output: ApiResponse_TeamPayload_;
166
+ };
167
+ /**
168
+ * POST /sales-coach/team/sets
169
+ * Create Team Set
170
+ * tier: write · scope: team:write
171
+ */
172
+ create_team_set_sales_coach_team_sets_post: {
173
+ input: {
174
+ headers?: {
175
+ "X-Target-Org-Id"?: string | null;
176
+ };
177
+ body: SetConfigRequest;
178
+ };
179
+ output: ApiResponse_TeamPayload_;
180
+ };
181
+ /**
182
+ * DELETE /sales-coach/calls/{call_id}
183
+ * Delete Call
184
+ * tier: destructive · scope: team:delete
185
+ */
186
+ delete_call_sales_coach_calls__call_id__delete: {
187
+ input: {
188
+ path: {
189
+ /** Call id (UUID). */
190
+ call_id: string;
191
+ };
192
+ headers?: {
193
+ "X-Target-Org-Id"?: string | null;
194
+ };
195
+ };
196
+ output: ApiResponse_CoachPayload_;
197
+ };
198
+ /**
199
+ * DELETE /sales-coach/interviews/{interview_id}
200
+ * Delete Interview
201
+ * tier: destructive · scope: team:delete
202
+ */
203
+ delete_interview_sales_coach_interviews__interview_id__delete: {
204
+ input: {
205
+ path: {
206
+ /** Interview round id (UUID). */
207
+ interview_id: string;
208
+ };
209
+ headers?: {
210
+ "X-Target-Org-Id"?: string | null;
211
+ };
212
+ };
213
+ output: ApiResponse_CoachPayload_;
214
+ };
215
+ /**
216
+ * DELETE /sales-coach/team/leaderboards/{lb_id}
217
+ * Delete Team Leaderboard
218
+ * tier: destructive · scope: team:delete
219
+ */
220
+ delete_team_leaderboard_sales_coach_team_leaderboards__lb_id__delete: {
221
+ input: {
222
+ path: {
223
+ /** Leaderboard id. */
224
+ lb_id: string;
225
+ };
226
+ headers?: {
227
+ "X-Target-Org-Id"?: string | null;
228
+ };
229
+ };
230
+ output: ApiResponse_TeamPayload_;
231
+ };
232
+ /**
233
+ * DELETE /sales-coach/team/sets/{set_id}
234
+ * Delete Team Set
235
+ * tier: destructive · scope: team:delete
236
+ */
237
+ delete_team_set_sales_coach_team_sets__set_id__delete: {
238
+ input: {
239
+ path: {
240
+ /** Set id. */
241
+ set_id: string;
242
+ };
243
+ headers?: {
244
+ "X-Target-Org-Id"?: string | null;
245
+ };
246
+ };
247
+ output: ApiResponse_TeamPayload_;
248
+ };
249
+ /**
250
+ * GET /sales-coach/calls/{call_id}
251
+ * Get Call
252
+ * tier: read · scope: team:read
253
+ */
254
+ get_call_sales_coach_calls__call_id__get: {
255
+ input: {
256
+ path: {
257
+ /** Call id (UUID). */
258
+ call_id: string;
259
+ };
260
+ headers?: {
261
+ "X-Target-Org-Id"?: string | null;
262
+ };
263
+ };
264
+ output: ApiResponse_CoachPayload_;
265
+ };
266
+ /**
267
+ * GET /sales-coach/calls/{call_id}/audio-url
268
+ * Get Call Audio Url
269
+ * tier: read · scope: team:read
270
+ */
271
+ get_call_audio_url_sales_coach_calls__call_id__audio_url_get: {
272
+ input: {
273
+ path: {
274
+ /** Call id (UUID). */
275
+ call_id: string;
276
+ };
277
+ headers?: {
278
+ "X-Target-Org-Id"?: string | null;
279
+ };
280
+ };
281
+ output: ApiResponse_CoachPayload_;
282
+ };
283
+ /**
284
+ * GET /sales-coach/calls/{call_id}/transcript
285
+ * Get Call Transcript
286
+ * tier: read · scope: team:read
287
+ */
288
+ get_call_transcript_sales_coach_calls__call_id__transcript_get: {
289
+ input: {
290
+ path: {
291
+ /** Call id (UUID). */
292
+ call_id: string;
293
+ };
294
+ headers?: {
295
+ "X-Target-Org-Id"?: string | null;
296
+ };
297
+ };
298
+ output: ApiResponse_CoachListPayload_;
299
+ };
300
+ /**
301
+ * GET /sales-coach/interviews/{interview_id}
302
+ * Get Interview
303
+ * tier: read · scope: team:read
304
+ */
305
+ get_interview_sales_coach_interviews__interview_id__get: {
306
+ input: {
307
+ path: {
308
+ /** Interview round id (UUID). */
309
+ interview_id: string;
310
+ };
311
+ headers?: {
312
+ "X-Target-Org-Id"?: string | null;
313
+ };
314
+ };
315
+ output: ApiResponse_CoachPayload_;
316
+ };
317
+ /**
318
+ * GET /sales-coach/interviews/by-code/{code}
319
+ * Get Interview By Code
320
+ * tier: read · scope: team:read
321
+ */
322
+ get_interview_by_code_sales_coach_interviews_by_code__code__get: {
323
+ input: {
324
+ path: {
325
+ /** A member's invite code. */
326
+ code: string;
327
+ };
328
+ headers?: {
329
+ "X-Target-Org-Id"?: string | null;
330
+ };
331
+ };
332
+ output: ApiResponse_CoachPayload_;
333
+ };
334
+ /**
335
+ * GET /sales-coach/leaderboard
336
+ * Get Sales Coach Leaderboard
337
+ * tier: read · scope: team:read
338
+ */
339
+ get_sales_coach_leaderboard_sales_coach_leaderboard_get: {
340
+ input: {
341
+ headers?: {
342
+ "X-Target-Org-Id"?: string | null;
343
+ };
344
+ };
345
+ output: ApiResponse_TeamListPayload_;
346
+ };
347
+ /**
348
+ * GET /sales-coach/team/active-users-summary
349
+ * Get Team Active Users Summary
350
+ * tier: read · scope: team:read
351
+ */
352
+ get_team_active_users_summary_sales_coach_team_active_users_summary_get: {
353
+ input: {
354
+ headers?: {
355
+ "X-Target-Org-Id"?: string | null;
356
+ };
357
+ };
358
+ output: ApiResponse_TeamPayload_;
359
+ };
360
+ /**
361
+ * GET /sales-coach/team/bootstrap
362
+ * Get Team Bootstrap
363
+ * tier: read · scope: team:read
364
+ */
365
+ get_team_bootstrap_sales_coach_team_bootstrap_get: {
366
+ input: {
367
+ query?: {
368
+ /** Window to score over. `today` is the app's default; the values a given org accepts come back in `visible_periods` from `GET /sales-coach/team/config`, because the set is configurable. */
369
+ period?: string;
370
+ /** Leaderboard to open on. */
371
+ lb?: string | null;
372
+ /** Rotation to open on. The wire name is `set`, matching the app's `?set=` query parameter; `set` is a Python builtin, so the handler parameter is `set_id` and the alias keeps the wire name identical to the app's. */
373
+ set?: string | null;
374
+ /** Legacy fallback when neither `lb` nor `set` is given. */
375
+ role?: string | null;
376
+ };
377
+ headers?: {
378
+ "X-Target-Org-Id"?: string | null;
379
+ };
380
+ };
381
+ output: ApiResponse_TeamPayload_;
382
+ };
383
+ /**
384
+ * GET /sales-coach/team/config
385
+ * Get Team Config
386
+ * tier: read · scope: team:read
387
+ */
388
+ get_team_config_sales_coach_team_config_get: {
389
+ input: {
390
+ headers?: {
391
+ "X-Target-Org-Id"?: string | null;
392
+ };
393
+ };
394
+ output: ApiResponse_TeamPayload_;
395
+ };
396
+ /**
397
+ * GET /sales-coach/team/kpi-catalog
398
+ * Get Team Kpi Catalog
399
+ * tier: read · scope: team:read
400
+ */
401
+ get_team_kpi_catalog_sales_coach_team_kpi_catalog_get: {
402
+ input: {
403
+ headers?: {
404
+ "X-Target-Org-Id"?: string | null;
405
+ };
406
+ };
407
+ output: ApiResponse_TeamListPayload_;
408
+ };
409
+ /**
410
+ * GET /sales-coach/team/leaderboards/{lb_id}/data
411
+ * Get Team Leaderboard Data
412
+ * tier: read · scope: team:read
413
+ */
414
+ get_team_leaderboard_data_sales_coach_team_leaderboards__lb_id__data_get: {
415
+ input: {
416
+ path: {
417
+ /** Leaderboard id. */
418
+ lb_id: string;
419
+ };
420
+ query?: {
421
+ /** Window to score over. `today` is the app's default; the values a given org accepts come back in `visible_periods` from `GET /sales-coach/team/config`, because the set is configurable. */
422
+ period?: string;
423
+ };
424
+ headers?: {
425
+ "X-Target-Org-Id"?: string | null;
426
+ };
427
+ };
428
+ output: ApiResponse_TeamPayload_;
429
+ };
430
+ /**
431
+ * GET /sales-coach/team/sets/{set_id}/data
432
+ * Get Team Set Data
433
+ * tier: read · scope: team:read
434
+ */
435
+ get_team_set_data_sales_coach_team_sets__set_id__data_get: {
436
+ input: {
437
+ path: {
438
+ /** Set id. */
439
+ set_id: string;
440
+ };
441
+ query?: {
442
+ /** Window to score over. `today` is the app's default; the values a given org accepts come back in `visible_periods` from `GET /sales-coach/team/config`, because the set is configurable. */
443
+ period?: string;
444
+ };
445
+ headers?: {
446
+ "X-Target-Org-Id"?: string | null;
447
+ };
448
+ };
449
+ output: ApiResponse_TeamPayload_;
450
+ };
451
+ /**
452
+ * GET /sales-coach/calls
453
+ * List Calls
454
+ * tier: read · scope: team:read
455
+ */
456
+ list_calls_sales_coach_calls_get: {
457
+ input: {
458
+ query?: {
459
+ /** Whose calls to read. Omit for the key owner's own. Naming SOMEBODY ELSE is manager-only and comes back 403 otherwise - calls carry transcripts and scores. */
460
+ email?: string | null;
461
+ };
462
+ headers?: {
463
+ "X-Target-Org-Id"?: string | null;
464
+ };
465
+ };
466
+ output: ApiResponse_CoachListPayload_;
467
+ };
468
+ /**
469
+ * GET /sales-coach/contact-lists
470
+ * List Coach Contact Lists
471
+ * tier: read · scope: team:read
472
+ */
473
+ list_coach_contact_lists_sales_coach_contact_lists_get: {
474
+ input: {
475
+ query?: {
476
+ /** Only lists tagged for coaching, rather than every audience. */
477
+ only_tagged?: boolean;
478
+ };
479
+ headers?: {
480
+ "X-Target-Org-Id"?: string | null;
481
+ };
482
+ };
483
+ output: ApiResponse_CoachListPayload_;
484
+ };
485
+ /**
486
+ * GET /sales-coach/interview-attempts
487
+ * List Interview Attempts
488
+ * tier: read · scope: team:read
489
+ */
490
+ list_interview_attempts_sales_coach_interview_attempts_get: {
491
+ input: {
492
+ query?: {
493
+ /** Only attempts made of this call. */
494
+ call_id?: string | null;
495
+ /** Only this member's attempts. */
496
+ member_id?: string | null;
497
+ };
498
+ headers?: {
499
+ "X-Target-Org-Id"?: string | null;
500
+ };
501
+ };
502
+ output: ApiResponse_CoachListPayload_;
503
+ };
504
+ /**
505
+ * GET /sales-coach/interviews
506
+ * List Interviews
507
+ * tier: read · scope: team:read
508
+ */
509
+ list_interviews_sales_coach_interviews_get: {
510
+ input: {
511
+ headers?: {
512
+ "X-Target-Org-Id"?: string | null;
513
+ };
514
+ };
515
+ output: ApiResponse_CoachListPayload_;
516
+ };
517
+ /**
518
+ * GET /sales-coach/team/leaderboards
519
+ * List Team Leaderboards
520
+ * tier: read · scope: team:read
521
+ */
522
+ list_team_leaderboards_sales_coach_team_leaderboards_get: {
523
+ input: {
524
+ headers?: {
525
+ "X-Target-Org-Id"?: string | null;
526
+ };
527
+ };
528
+ output: ApiResponse_TeamListPayload_;
529
+ };
530
+ /**
531
+ * GET /sales-coach/team/roles
532
+ * List Team Roles
533
+ * tier: read · scope: team:read
534
+ */
535
+ list_team_roles_sales_coach_team_roles_get: {
536
+ input: {
537
+ headers?: {
538
+ "X-Target-Org-Id"?: string | null;
539
+ };
540
+ };
541
+ output: ApiResponse_TeamListPayload_;
542
+ };
543
+ /**
544
+ * GET /sales-coach/team/sets
545
+ * List Team Sets
546
+ * tier: read · scope: team:read
547
+ */
548
+ list_team_sets_sales_coach_team_sets_get: {
549
+ input: {
550
+ headers?: {
551
+ "X-Target-Org-Id"?: string | null;
552
+ };
553
+ };
554
+ output: ApiResponse_TeamListPayload_;
555
+ };
556
+ /**
557
+ * GET /sales-coach/prospects/search
558
+ * Search Coach Prospects
559
+ * tier: read · scope: team:read
560
+ */
561
+ search_coach_prospects_sales_coach_prospects_search_get: {
562
+ input: {
563
+ query: {
564
+ /** Audience to search within. */
565
+ audience_id: string;
566
+ /** Free text over the prospect's name and company. */
567
+ q?: string;
568
+ limit?: number;
569
+ offset?: number;
570
+ };
571
+ headers?: {
572
+ "X-Target-Org-Id"?: string | null;
573
+ };
574
+ };
575
+ output: ApiResponse_CoachListPayload_;
576
+ };
577
+ /**
578
+ * POST /sales-coach/interviews/{interview_id}/members/{member_id}/send-invite
579
+ * Send Interview Invite
580
+ * tier: external · scope: team:run
581
+ */
582
+ send_interview_invite_sales_coach_interviews__interview_id__members__member_id__send_invite_post: {
583
+ input: {
584
+ path: {
585
+ /** Interview round id (UUID). */
586
+ interview_id: string;
587
+ /** Member id (UUID). */
588
+ member_id: string;
589
+ };
590
+ headers?: {
591
+ "X-Target-Org-Id"?: string | null;
592
+ };
593
+ };
594
+ output: ApiResponse_CoachPayload_;
595
+ };
596
+ /**
597
+ * PUT /sales-coach/calls/{call_id}
598
+ * Update Call
599
+ * tier: write · scope: team:write
600
+ */
601
+ update_call_sales_coach_calls__call_id__put: {
602
+ input: {
603
+ path: {
604
+ /** Call id (UUID). */
605
+ call_id: string;
606
+ };
607
+ headers?: {
608
+ "X-Target-Org-Id"?: string | null;
609
+ };
610
+ body: UpdateCallRequest;
611
+ };
612
+ output: ApiResponse_CoachPayload_;
613
+ };
614
+ /**
615
+ * PUT /sales-coach/team/config
616
+ * Update Team Config
617
+ * tier: write · scope: team:write
618
+ */
619
+ update_team_config_sales_coach_team_config_put: {
620
+ input: {
621
+ headers?: {
622
+ "X-Target-Org-Id"?: string | null;
623
+ };
624
+ body: TeamConfigUpdateRequest;
625
+ };
626
+ output: ApiResponse_TeamPayload_;
627
+ };
628
+ /**
629
+ * PUT /sales-coach/team/leaderboards/{lb_id}
630
+ * Update Team Leaderboard
631
+ * tier: write · scope: team:write
632
+ */
633
+ update_team_leaderboard_sales_coach_team_leaderboards__lb_id__put: {
634
+ input: {
635
+ path: {
636
+ /** Leaderboard id. */
637
+ lb_id: string;
638
+ };
639
+ headers?: {
640
+ "X-Target-Org-Id"?: string | null;
641
+ };
642
+ body: LeaderboardConfigRequest;
643
+ };
644
+ output: ApiResponse_TeamPayload_;
645
+ };
646
+ /**
647
+ * PUT /sales-coach/team/sets/{set_id}
648
+ * Update Team Set
649
+ * tier: write · scope: team:write
650
+ */
651
+ update_team_set_sales_coach_team_sets__set_id__put: {
652
+ input: {
653
+ path: {
654
+ /** Set id. */
655
+ set_id: string;
656
+ };
657
+ headers?: {
658
+ "X-Target-Org-Id"?: string | null;
659
+ };
660
+ body: SetConfigRequest;
661
+ };
662
+ output: ApiResponse_TeamPayload_;
663
+ };
664
+ }
665
+
666
+ // 21 schemas referenced above (the same as G8Contract.<Name>).
667
+
668
+ /**
669
+ * Add someone to an interview round.
670
+ *
671
+ * `send_invite=true` EMAILS THAT PERSON immediately. It defaults to false, so
672
+ * adding a member is a plain write unless the caller asks for the mail.
673
+ */
674
+ export interface AddInterviewMemberRequest {
675
+ email: string;
676
+ name: string;
677
+ /** Send the invite email now. TRUE REACHES A REAL PERSON. */
678
+ send_invite?: boolean;
679
+ }
680
+
681
+ export interface ApiResponse_CoachListPayload_ {
682
+ data: CoachListPayload;
683
+ pagination?: PaginationMeta | null;
684
+ }
685
+
686
+ export interface ApiResponse_CoachPayload_ {
687
+ data: CoachPayload;
688
+ pagination?: PaginationMeta | null;
689
+ }
690
+
691
+ export interface ApiResponse_TeamListPayload_ {
692
+ data: TeamListPayload;
693
+ pagination?: PaginationMeta | null;
694
+ }
695
+
696
+ export interface ApiResponse_TeamPayload_ {
697
+ data: TeamPayload;
698
+ pagination?: PaginationMeta | null;
699
+ }
700
+
701
+ /**
702
+ * Grant one Team HQ role to an existing member of the caller's org.
703
+ *
704
+ * A role REPLACES the person's whole permission set - `cb_user_roles` has a
705
+ * composite primary key on (user_id, org_id), so there is exactly one row per
706
+ * person per org. This is a privilege grant, not a label.
707
+ */
708
+ export interface AssignTeamRoleRequest {
709
+ /** The role to grant. `admin` is not assignable here - it belongs to Settings -> Roles, behind the full RBAC admin gate. */
710
+ slug: "ae" | "sdr" | "csm" | "campaign_manager" | "sales_manager";
711
+ }
712
+
713
+ /** An open envelope for a LIST result, so a bare list keeps its shape. */
714
+ export interface CoachListPayload {
715
+ items?: Array<unknown>;
716
+ [key: string]: unknown;
717
+ }
718
+
719
+ /** An open envelope for a call, an interview round or an attempt. */
720
+ export type CoachPayload = Record<string, unknown>;
721
+
722
+ /**
723
+ * Start a practice call record.
724
+ *
725
+ * `call_mode` is CLOSED to the app's two values. The app validates it in a
726
+ * field validator that raises inside the proxy rather than at the request
727
+ * boundary, so an open string here would be a 500 instead of a 422 naming
728
+ * both modes.
729
+ */
730
+ export interface CreateCallRequest {
731
+ /** `compete` is the rep alone against the AI prospect; `assisted` is the coached variant. */
732
+ call_mode: "compete" | "assisted";
733
+ persona_type?: string | null;
734
+ prospect_company?: string | null;
735
+ prospect_name?: string | null;
736
+ }
737
+
738
+ /** Record an attempt identified by the member's invite CODE rather than their id. */
739
+ export interface CreateInterviewAttemptByCodeRequest {
740
+ /** The practice call this attempt is made of. */
741
+ call_id: string;
742
+ }
743
+
744
+ /** Record an attempt at an interview round, against a call that already exists. */
745
+ export interface CreateInterviewAttemptRequest {
746
+ /** The practice call this attempt is made of. */
747
+ call_id: string;
748
+ /** Which member attempted it. Omit for an unattributed attempt. */
749
+ member_id?: string | null;
750
+ }
751
+
752
+ /** Create an interview round - a scripted practice call a candidate is invited to. */
753
+ export interface CreateInterviewRequest {
754
+ /** Audience the prospect is drawn from. */
755
+ audience_id: string;
756
+ /** How the AI prospect behaves. Free-form: the app does not close this set. */
757
+ behavior?: string;
758
+ /** How long an invite code stays valid. Omit for the app default of 14 days. */
759
+ code_ttl_days?: number | null;
760
+ /** How many times a member may try. */
761
+ max_attempts?: number;
762
+ /** What the round is called. */
763
+ name: string;
764
+ /** The contact the AI will play. */
765
+ prospect_id: string;
766
+ prospect_name?: string | null;
767
+ }
768
+
769
+ /**
770
+ * A leaderboard: who is on it, what it measures, and what it is aiming at.
771
+ *
772
+ * `id` is REQUIRED and client-supplied, matching the app - these are
773
+ * config rows keyed by a slug the caller chooses, not server-generated
774
+ * records. Sending an existing id through `POST` is how the app upserts.
775
+ */
776
+ export interface LeaderboardConfigRequest {
777
+ goal?: LeaderboardGoal | null;
778
+ /** Caller-chosen id. Reusing one upserts, matching the app. */
779
+ id: string;
780
+ /** Marks a board the product ships rather than one a customer made. Accepted because the app's model has it; leave it False for your own boards. */
781
+ is_system?: boolean;
782
+ kpis: Array<LeaderboardKpi>;
783
+ name: string;
784
+ /** Which team roles appear on this board. */
785
+ roles: Array<string>;
786
+ }
787
+
788
+ /** The target a leaderboard is measured against. */
789
+ export interface LeaderboardGoal {
790
+ metric: string;
791
+ period: string;
792
+ target: number;
793
+ }
794
+
795
+ /** One metric on a leaderboard, with its weight and visibility. */
796
+ export interface LeaderboardKpi {
797
+ /** KPI id from `GET /sales-coach/team/kpi-catalog`. */
798
+ id: string;
799
+ visible?: boolean;
800
+ /** How much this KPI counts toward the ranking. */
801
+ weight: number;
802
+ }
803
+
804
+ export interface PaginationMeta {
805
+ /** Whether there are more pages */
806
+ has_next: boolean;
807
+ /** Items per page */
808
+ limit: number;
809
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
810
+ next_cursor?: string | null;
811
+ /** Current page number (1-indexed) */
812
+ page: number;
813
+ /** Total number of items */
814
+ total: number;
815
+ }
816
+
817
+ /** A ROTATION of leaderboards - what a wall display cycles through. */
818
+ export interface SetConfigRequest {
819
+ /** Whether the display plays a sound on a change. */
820
+ audio_enabled?: boolean;
821
+ /** Caller-chosen id. */
822
+ id: string;
823
+ is_default?: boolean;
824
+ /** The boards to rotate through, in order. */
825
+ leaderboard_ids: Array<string>;
826
+ name: string;
827
+ /** Seconds per board. The app's default is 30. */
828
+ rotation_seconds?: number;
829
+ }
830
+
831
+ /**
832
+ * Team Command Center settings.
833
+ *
834
+ * OPEN (`extra="allow"`), mirroring the app's `TeamFloorConfigUpdate`, which
835
+ * carries the same and says in its own docstring that it is an INTENTIONAL
836
+ * deviation from the `extra="forbid"` rule its sibling JSONB endpoints
837
+ * follow. Closing it here would reject a key the app itself stores.
838
+ *
839
+ * Every field is optional; only what you send is written.
840
+ */
841
+ export interface TeamConfigUpdateRequest {
842
+ default_period?: string | null;
843
+ goals?: Record<string, Record<string, unknown>> | null;
844
+ team_command_center_enabled?: boolean | null;
845
+ tv_rotation_seconds?: number | null;
846
+ visible_columns?: Record<string, Array<string>> | null;
847
+ visible_periods?: Array<string> | null;
848
+ [key: string]: unknown;
849
+ }
850
+
851
+ /** An open envelope for a LIST result, so a bare list keeps its shape. */
852
+ export interface TeamListPayload {
853
+ items?: Array<unknown>;
854
+ [key: string]: unknown;
855
+ }
856
+
857
+ /**
858
+ * An open envelope for a config, a bootstrap or a data response.
859
+ *
860
+ * Open because the leaderboard and set DATA responses carry one key per KPI
861
+ * and the KPI catalogue is org-configurable: a closed model would drop a
862
+ * customer's own metric, and a leaderboard missing a column reads as a rep
863
+ * having scored nothing.
864
+ */
865
+ export type TeamPayload = Record<string, unknown>;
866
+
867
+ /** Amend a call record. Every field is optional and only what you send is written. */
868
+ export interface UpdateCallRequest {
869
+ /** Where the recording lives. */
870
+ audio_url?: string | null;
871
+ /** New status for the call. */
872
+ call_status?: string | null;
873
+ /** Call length in milliseconds. */
874
+ duration_ms?: number | null;
875
+ /** Score for the call. */
876
+ final_score?: number | null;
877
+ }