boltz-api 0.30.3

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 (579) hide show
  1. package/CHANGELOG.md +708 -0
  2. package/LICENSE +201 -0
  3. package/README.md +466 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +219 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +219 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +522 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +518 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/pagination.d.mts +78 -0
  37. package/core/pagination.d.mts.map +1 -0
  38. package/core/pagination.d.ts +78 -0
  39. package/core/pagination.d.ts.map +1 -0
  40. package/core/pagination.js +154 -0
  41. package/core/pagination.js.map +1 -0
  42. package/core/pagination.mjs +147 -0
  43. package/core/pagination.mjs.map +1 -0
  44. package/core/resource.d.mts +6 -0
  45. package/core/resource.d.mts.map +1 -0
  46. package/core/resource.d.ts +6 -0
  47. package/core/resource.d.ts.map +1 -0
  48. package/core/resource.js +11 -0
  49. package/core/resource.js.map +1 -0
  50. package/core/resource.mjs +7 -0
  51. package/core/resource.mjs.map +1 -0
  52. package/core/uploads.d.mts +3 -0
  53. package/core/uploads.d.mts.map +1 -0
  54. package/core/uploads.d.ts +3 -0
  55. package/core/uploads.d.ts.map +1 -0
  56. package/core/uploads.js +6 -0
  57. package/core/uploads.js.map +1 -0
  58. package/core/uploads.mjs +2 -0
  59. package/core/uploads.mjs.map +1 -0
  60. package/error.d.mts +2 -0
  61. package/error.d.mts.map +1 -0
  62. package/error.d.ts +2 -0
  63. package/error.d.ts.map +1 -0
  64. package/error.js +6 -0
  65. package/error.js.map +1 -0
  66. package/error.mjs +2 -0
  67. package/error.mjs.map +1 -0
  68. package/index.d.mts +7 -0
  69. package/index.d.mts.map +1 -0
  70. package/index.d.ts +7 -0
  71. package/index.d.ts.map +1 -0
  72. package/index.js +32 -0
  73. package/index.js.map +1 -0
  74. package/index.mjs +8 -0
  75. package/index.mjs.map +1 -0
  76. package/internal/builtin-types.d.mts +73 -0
  77. package/internal/builtin-types.d.mts.map +1 -0
  78. package/internal/builtin-types.d.ts +73 -0
  79. package/internal/builtin-types.d.ts.map +1 -0
  80. package/internal/builtin-types.js +4 -0
  81. package/internal/builtin-types.js.map +1 -0
  82. package/internal/builtin-types.mjs +3 -0
  83. package/internal/builtin-types.mjs.map +1 -0
  84. package/internal/detect-platform.d.mts +15 -0
  85. package/internal/detect-platform.d.mts.map +1 -0
  86. package/internal/detect-platform.d.ts +15 -0
  87. package/internal/detect-platform.d.ts.map +1 -0
  88. package/internal/detect-platform.js +162 -0
  89. package/internal/detect-platform.js.map +1 -0
  90. package/internal/detect-platform.mjs +157 -0
  91. package/internal/detect-platform.mjs.map +1 -0
  92. package/internal/errors.d.mts +3 -0
  93. package/internal/errors.d.mts.map +1 -0
  94. package/internal/errors.d.ts +3 -0
  95. package/internal/errors.d.ts.map +1 -0
  96. package/internal/errors.js +41 -0
  97. package/internal/errors.js.map +1 -0
  98. package/internal/errors.mjs +36 -0
  99. package/internal/errors.mjs.map +1 -0
  100. package/internal/headers.d.mts +20 -0
  101. package/internal/headers.d.mts.map +1 -0
  102. package/internal/headers.d.ts +20 -0
  103. package/internal/headers.d.ts.map +1 -0
  104. package/internal/headers.js +79 -0
  105. package/internal/headers.js.map +1 -0
  106. package/internal/headers.mjs +74 -0
  107. package/internal/headers.mjs.map +1 -0
  108. package/internal/parse.d.mts +12 -0
  109. package/internal/parse.d.mts.map +1 -0
  110. package/internal/parse.d.ts +12 -0
  111. package/internal/parse.d.ts.map +1 -0
  112. package/internal/parse.js +40 -0
  113. package/internal/parse.js.map +1 -0
  114. package/internal/parse.mjs +37 -0
  115. package/internal/parse.mjs.map +1 -0
  116. package/internal/qs/formats.d.mts +7 -0
  117. package/internal/qs/formats.d.mts.map +1 -0
  118. package/internal/qs/formats.d.ts +7 -0
  119. package/internal/qs/formats.d.ts.map +1 -0
  120. package/internal/qs/formats.js +13 -0
  121. package/internal/qs/formats.js.map +1 -0
  122. package/internal/qs/formats.mjs +9 -0
  123. package/internal/qs/formats.mjs.map +1 -0
  124. package/internal/qs/index.d.mts +10 -0
  125. package/internal/qs/index.d.mts.map +1 -0
  126. package/internal/qs/index.d.ts +10 -0
  127. package/internal/qs/index.d.ts.map +1 -0
  128. package/internal/qs/index.js +14 -0
  129. package/internal/qs/index.js.map +1 -0
  130. package/internal/qs/index.mjs +10 -0
  131. package/internal/qs/index.mjs.map +1 -0
  132. package/internal/qs/stringify.d.mts +3 -0
  133. package/internal/qs/stringify.d.mts.map +1 -0
  134. package/internal/qs/stringify.d.ts +3 -0
  135. package/internal/qs/stringify.d.ts.map +1 -0
  136. package/internal/qs/stringify.js +277 -0
  137. package/internal/qs/stringify.js.map +1 -0
  138. package/internal/qs/stringify.mjs +274 -0
  139. package/internal/qs/stringify.mjs.map +1 -0
  140. package/internal/qs/types.d.mts +57 -0
  141. package/internal/qs/types.d.mts.map +1 -0
  142. package/internal/qs/types.d.ts +57 -0
  143. package/internal/qs/types.d.ts.map +1 -0
  144. package/internal/qs/types.js +3 -0
  145. package/internal/qs/types.js.map +1 -0
  146. package/internal/qs/types.mjs +2 -0
  147. package/internal/qs/types.mjs.map +1 -0
  148. package/internal/qs/utils.d.mts +15 -0
  149. package/internal/qs/utils.d.mts.map +1 -0
  150. package/internal/qs/utils.d.ts +15 -0
  151. package/internal/qs/utils.d.ts.map +1 -0
  152. package/internal/qs/utils.js +230 -0
  153. package/internal/qs/utils.js.map +1 -0
  154. package/internal/qs/utils.mjs +217 -0
  155. package/internal/qs/utils.mjs.map +1 -0
  156. package/internal/request-options.d.mts +75 -0
  157. package/internal/request-options.d.mts.map +1 -0
  158. package/internal/request-options.d.ts +75 -0
  159. package/internal/request-options.d.ts.map +1 -0
  160. package/internal/request-options.js +14 -0
  161. package/internal/request-options.js.map +1 -0
  162. package/internal/request-options.mjs +10 -0
  163. package/internal/request-options.mjs.map +1 -0
  164. package/internal/shim-types.d.mts +17 -0
  165. package/internal/shim-types.d.mts.map +1 -0
  166. package/internal/shim-types.d.ts +17 -0
  167. package/internal/shim-types.d.ts.map +1 -0
  168. package/internal/shim-types.js +4 -0
  169. package/internal/shim-types.js.map +1 -0
  170. package/internal/shim-types.mjs +3 -0
  171. package/internal/shim-types.mjs.map +1 -0
  172. package/internal/shims.d.mts +20 -0
  173. package/internal/shims.d.mts.map +1 -0
  174. package/internal/shims.d.ts +20 -0
  175. package/internal/shims.d.ts.map +1 -0
  176. package/internal/shims.js +92 -0
  177. package/internal/shims.js.map +1 -0
  178. package/internal/shims.mjs +85 -0
  179. package/internal/shims.mjs.map +1 -0
  180. package/internal/to-file.d.mts +45 -0
  181. package/internal/to-file.d.mts.map +1 -0
  182. package/internal/to-file.d.ts +45 -0
  183. package/internal/to-file.d.ts.map +1 -0
  184. package/internal/to-file.js +91 -0
  185. package/internal/to-file.js.map +1 -0
  186. package/internal/to-file.mjs +88 -0
  187. package/internal/to-file.mjs.map +1 -0
  188. package/internal/tslib.js +81 -0
  189. package/internal/tslib.mjs +17 -0
  190. package/internal/types.d.mts +69 -0
  191. package/internal/types.d.mts.map +1 -0
  192. package/internal/types.d.ts +69 -0
  193. package/internal/types.d.ts.map +1 -0
  194. package/internal/types.js +4 -0
  195. package/internal/types.js.map +1 -0
  196. package/internal/types.mjs +3 -0
  197. package/internal/types.mjs.map +1 -0
  198. package/internal/uploads.d.mts +42 -0
  199. package/internal/uploads.d.mts.map +1 -0
  200. package/internal/uploads.d.ts +42 -0
  201. package/internal/uploads.d.ts.map +1 -0
  202. package/internal/uploads.js +141 -0
  203. package/internal/uploads.js.map +1 -0
  204. package/internal/uploads.mjs +131 -0
  205. package/internal/uploads.mjs.map +1 -0
  206. package/internal/utils/base64.d.mts +3 -0
  207. package/internal/utils/base64.d.mts.map +1 -0
  208. package/internal/utils/base64.d.ts +3 -0
  209. package/internal/utils/base64.d.ts.map +1 -0
  210. package/internal/utils/base64.js +38 -0
  211. package/internal/utils/base64.js.map +1 -0
  212. package/internal/utils/base64.mjs +33 -0
  213. package/internal/utils/base64.mjs.map +1 -0
  214. package/internal/utils/bytes.d.mts +4 -0
  215. package/internal/utils/bytes.d.mts.map +1 -0
  216. package/internal/utils/bytes.d.ts +4 -0
  217. package/internal/utils/bytes.d.ts.map +1 -0
  218. package/internal/utils/bytes.js +31 -0
  219. package/internal/utils/bytes.js.map +1 -0
  220. package/internal/utils/bytes.mjs +26 -0
  221. package/internal/utils/bytes.mjs.map +1 -0
  222. package/internal/utils/env.d.mts +9 -0
  223. package/internal/utils/env.d.mts.map +1 -0
  224. package/internal/utils/env.d.ts +9 -0
  225. package/internal/utils/env.d.ts.map +1 -0
  226. package/internal/utils/env.js +22 -0
  227. package/internal/utils/env.js.map +1 -0
  228. package/internal/utils/env.mjs +18 -0
  229. package/internal/utils/env.mjs.map +1 -0
  230. package/internal/utils/log.d.mts +37 -0
  231. package/internal/utils/log.d.mts.map +1 -0
  232. package/internal/utils/log.d.ts +37 -0
  233. package/internal/utils/log.d.ts.map +1 -0
  234. package/internal/utils/log.js +86 -0
  235. package/internal/utils/log.js.map +1 -0
  236. package/internal/utils/log.mjs +80 -0
  237. package/internal/utils/log.mjs.map +1 -0
  238. package/internal/utils/path.d.mts +15 -0
  239. package/internal/utils/path.d.mts.map +1 -0
  240. package/internal/utils/path.d.ts +15 -0
  241. package/internal/utils/path.d.ts.map +1 -0
  242. package/internal/utils/path.js +79 -0
  243. package/internal/utils/path.js.map +1 -0
  244. package/internal/utils/path.mjs +74 -0
  245. package/internal/utils/path.mjs.map +1 -0
  246. package/internal/utils/query.d.mts +2 -0
  247. package/internal/utils/query.d.mts.map +1 -0
  248. package/internal/utils/query.d.ts +2 -0
  249. package/internal/utils/query.d.ts.map +1 -0
  250. package/internal/utils/query.js +10 -0
  251. package/internal/utils/query.js.map +1 -0
  252. package/internal/utils/query.mjs +6 -0
  253. package/internal/utils/query.mjs.map +1 -0
  254. package/internal/utils/sleep.d.mts +2 -0
  255. package/internal/utils/sleep.d.mts.map +1 -0
  256. package/internal/utils/sleep.d.ts +2 -0
  257. package/internal/utils/sleep.d.ts.map +1 -0
  258. package/internal/utils/sleep.js +7 -0
  259. package/internal/utils/sleep.js.map +1 -0
  260. package/internal/utils/sleep.mjs +3 -0
  261. package/internal/utils/sleep.mjs.map +1 -0
  262. package/internal/utils/uuid.d.mts +5 -0
  263. package/internal/utils/uuid.d.mts.map +1 -0
  264. package/internal/utils/uuid.d.ts +5 -0
  265. package/internal/utils/uuid.d.ts.map +1 -0
  266. package/internal/utils/uuid.js +19 -0
  267. package/internal/utils/uuid.js.map +1 -0
  268. package/internal/utils/uuid.mjs +15 -0
  269. package/internal/utils/uuid.mjs.map +1 -0
  270. package/internal/utils/values.d.mts +18 -0
  271. package/internal/utils/values.d.mts.map +1 -0
  272. package/internal/utils/values.d.ts +18 -0
  273. package/internal/utils/values.d.ts.map +1 -0
  274. package/internal/utils/values.js +112 -0
  275. package/internal/utils/values.js.map +1 -0
  276. package/internal/utils/values.mjs +94 -0
  277. package/internal/utils/values.mjs.map +1 -0
  278. package/internal/utils.d.mts +8 -0
  279. package/internal/utils.d.mts.map +1 -0
  280. package/internal/utils.d.ts +8 -0
  281. package/internal/utils.d.ts.map +1 -0
  282. package/internal/utils.js +12 -0
  283. package/internal/utils.js.map +1 -0
  284. package/internal/utils.mjs +9 -0
  285. package/internal/utils.mjs.map +1 -0
  286. package/package.json +153 -0
  287. package/pagination.d.mts +2 -0
  288. package/pagination.d.mts.map +1 -0
  289. package/pagination.d.ts +2 -0
  290. package/pagination.d.ts.map +1 -0
  291. package/pagination.js +6 -0
  292. package/pagination.js.map +1 -0
  293. package/pagination.mjs +2 -0
  294. package/pagination.mjs.map +1 -0
  295. package/resource.d.mts +2 -0
  296. package/resource.d.mts.map +1 -0
  297. package/resource.d.ts +2 -0
  298. package/resource.d.ts.map +1 -0
  299. package/resource.js +6 -0
  300. package/resource.js.map +1 -0
  301. package/resource.mjs +2 -0
  302. package/resource.mjs.map +1 -0
  303. package/resources/admin/admin.d.mts +21 -0
  304. package/resources/admin/admin.d.mts.map +1 -0
  305. package/resources/admin/admin.d.ts +21 -0
  306. package/resources/admin/admin.d.ts.map +1 -0
  307. package/resources/admin/admin.js +28 -0
  308. package/resources/admin/admin.js.map +1 -0
  309. package/resources/admin/admin.mjs +23 -0
  310. package/resources/admin/admin.mjs.map +1 -0
  311. package/resources/admin/api-keys.d.mts +166 -0
  312. package/resources/admin/api-keys.d.mts.map +1 -0
  313. package/resources/admin/api-keys.d.ts +166 -0
  314. package/resources/admin/api-keys.d.ts.map +1 -0
  315. package/resources/admin/api-keys.js +35 -0
  316. package/resources/admin/api-keys.js.map +1 -0
  317. package/resources/admin/api-keys.mjs +31 -0
  318. package/resources/admin/api-keys.mjs.map +1 -0
  319. package/resources/admin/index.d.mts +5 -0
  320. package/resources/admin/index.d.mts.map +1 -0
  321. package/resources/admin/index.d.ts +5 -0
  322. package/resources/admin/index.d.ts.map +1 -0
  323. package/resources/admin/index.js +13 -0
  324. package/resources/admin/index.js.map +1 -0
  325. package/resources/admin/index.mjs +6 -0
  326. package/resources/admin/index.mjs.map +1 -0
  327. package/resources/admin/usage.d.mts +60 -0
  328. package/resources/admin/usage.d.mts.map +1 -0
  329. package/resources/admin/usage.d.ts +60 -0
  330. package/resources/admin/usage.d.ts.map +1 -0
  331. package/resources/admin/usage.js +23 -0
  332. package/resources/admin/usage.js.map +1 -0
  333. package/resources/admin/usage.mjs +19 -0
  334. package/resources/admin/usage.mjs.map +1 -0
  335. package/resources/admin/workspaces.d.mts +278 -0
  336. package/resources/admin/workspaces.d.mts.map +1 -0
  337. package/resources/admin/workspaces.d.ts +278 -0
  338. package/resources/admin/workspaces.d.ts.map +1 -0
  339. package/resources/admin/workspaces.js +48 -0
  340. package/resources/admin/workspaces.js.map +1 -0
  341. package/resources/admin/workspaces.mjs +44 -0
  342. package/resources/admin/workspaces.mjs.map +1 -0
  343. package/resources/admin.d.mts +2 -0
  344. package/resources/admin.d.mts.map +1 -0
  345. package/resources/admin.d.ts +2 -0
  346. package/resources/admin.d.ts.map +1 -0
  347. package/resources/admin.js +6 -0
  348. package/resources/admin.js.map +1 -0
  349. package/resources/admin.mjs +3 -0
  350. package/resources/admin.mjs.map +1 -0
  351. package/resources/auth.d.mts +48 -0
  352. package/resources/auth.d.mts.map +1 -0
  353. package/resources/auth.d.ts +48 -0
  354. package/resources/auth.d.ts.map +1 -0
  355. package/resources/auth.js +25 -0
  356. package/resources/auth.js.map +1 -0
  357. package/resources/auth.mjs +21 -0
  358. package/resources/auth.mjs.map +1 -0
  359. package/resources/cli.d.mts +39 -0
  360. package/resources/cli.d.mts.map +1 -0
  361. package/resources/cli.d.ts +39 -0
  362. package/resources/cli.d.ts.map +1 -0
  363. package/resources/cli.js +23 -0
  364. package/resources/cli.js.map +1 -0
  365. package/resources/cli.mjs +19 -0
  366. package/resources/cli.mjs.map +1 -0
  367. package/resources/index.d.mts +7 -0
  368. package/resources/index.d.mts.map +1 -0
  369. package/resources/index.d.ts +7 -0
  370. package/resources/index.d.ts.map +1 -0
  371. package/resources/index.js +17 -0
  372. package/resources/index.js.map +1 -0
  373. package/resources/index.mjs +8 -0
  374. package/resources/index.mjs.map +1 -0
  375. package/resources/predictions/index.d.mts +3 -0
  376. package/resources/predictions/index.d.mts.map +1 -0
  377. package/resources/predictions/index.d.ts +3 -0
  378. package/resources/predictions/index.d.ts.map +1 -0
  379. package/resources/predictions/index.js +9 -0
  380. package/resources/predictions/index.js.map +1 -0
  381. package/resources/predictions/index.mjs +4 -0
  382. package/resources/predictions/index.mjs.map +1 -0
  383. package/resources/predictions/predictions.d.mts +13 -0
  384. package/resources/predictions/predictions.d.mts.map +1 -0
  385. package/resources/predictions/predictions.d.ts +13 -0
  386. package/resources/predictions/predictions.d.ts.map +1 -0
  387. package/resources/predictions/predictions.js +20 -0
  388. package/resources/predictions/predictions.js.map +1 -0
  389. package/resources/predictions/predictions.mjs +15 -0
  390. package/resources/predictions/predictions.mjs.map +1 -0
  391. package/resources/predictions/structure-and-binding.d.mts +2295 -0
  392. package/resources/predictions/structure-and-binding.d.mts.map +1 -0
  393. package/resources/predictions/structure-and-binding.d.ts +2295 -0
  394. package/resources/predictions/structure-and-binding.d.ts.map +1 -0
  395. package/resources/predictions/structure-and-binding.js +111 -0
  396. package/resources/predictions/structure-and-binding.js.map +1 -0
  397. package/resources/predictions/structure-and-binding.mjs +107 -0
  398. package/resources/predictions/structure-and-binding.mjs.map +1 -0
  399. package/resources/predictions.d.mts +2 -0
  400. package/resources/predictions.d.mts.map +1 -0
  401. package/resources/predictions.d.ts +2 -0
  402. package/resources/predictions.d.ts.map +1 -0
  403. package/resources/predictions.js +6 -0
  404. package/resources/predictions.js.map +1 -0
  405. package/resources/predictions.mjs +3 -0
  406. package/resources/predictions.mjs.map +1 -0
  407. package/resources/protein/design.d.mts +5760 -0
  408. package/resources/protein/design.d.mts.map +1 -0
  409. package/resources/protein/design.d.ts +5760 -0
  410. package/resources/protein/design.d.ts.map +1 -0
  411. package/resources/protein/design.js +157 -0
  412. package/resources/protein/design.js.map +1 -0
  413. package/resources/protein/design.mjs +153 -0
  414. package/resources/protein/design.mjs.map +1 -0
  415. package/resources/protein/index.d.mts +4 -0
  416. package/resources/protein/index.d.mts.map +1 -0
  417. package/resources/protein/index.d.ts +4 -0
  418. package/resources/protein/index.d.ts.map +1 -0
  419. package/resources/protein/index.js +11 -0
  420. package/resources/protein/index.js.map +1 -0
  421. package/resources/protein/index.mjs +5 -0
  422. package/resources/protein/index.mjs.map +1 -0
  423. package/resources/protein/library-screen.d.mts +3428 -0
  424. package/resources/protein/library-screen.d.mts.map +1 -0
  425. package/resources/protein/library-screen.d.ts +3428 -0
  426. package/resources/protein/library-screen.d.ts.map +1 -0
  427. package/resources/protein/library-screen.js +158 -0
  428. package/resources/protein/library-screen.js.map +1 -0
  429. package/resources/protein/library-screen.mjs +154 -0
  430. package/resources/protein/library-screen.mjs.map +1 -0
  431. package/resources/protein/protein.d.mts +17 -0
  432. package/resources/protein/protein.d.mts.map +1 -0
  433. package/resources/protein/protein.d.ts +17 -0
  434. package/resources/protein/protein.d.ts.map +1 -0
  435. package/resources/protein/protein.js +24 -0
  436. package/resources/protein/protein.js.map +1 -0
  437. package/resources/protein/protein.mjs +19 -0
  438. package/resources/protein/protein.mjs.map +1 -0
  439. package/resources/protein.d.mts +2 -0
  440. package/resources/protein.d.mts.map +1 -0
  441. package/resources/protein.d.ts +2 -0
  442. package/resources/protein.d.ts.map +1 -0
  443. package/resources/protein.js +6 -0
  444. package/resources/protein.js.map +1 -0
  445. package/resources/protein.mjs +3 -0
  446. package/resources/protein.mjs.map +1 -0
  447. package/resources/small-molecule/design.d.mts +3428 -0
  448. package/resources/small-molecule/design.d.mts.map +1 -0
  449. package/resources/small-molecule/design.d.ts +3428 -0
  450. package/resources/small-molecule/design.d.ts.map +1 -0
  451. package/resources/small-molecule/design.js +135 -0
  452. package/resources/small-molecule/design.js.map +1 -0
  453. package/resources/small-molecule/design.mjs +131 -0
  454. package/resources/small-molecule/design.mjs.map +1 -0
  455. package/resources/small-molecule/index.d.mts +4 -0
  456. package/resources/small-molecule/index.d.mts.map +1 -0
  457. package/resources/small-molecule/index.d.ts +4 -0
  458. package/resources/small-molecule/index.d.ts.map +1 -0
  459. package/resources/small-molecule/index.js +11 -0
  460. package/resources/small-molecule/index.js.map +1 -0
  461. package/resources/small-molecule/index.mjs +5 -0
  462. package/resources/small-molecule/index.mjs.map +1 -0
  463. package/resources/small-molecule/library-screen.d.mts +3494 -0
  464. package/resources/small-molecule/library-screen.d.mts.map +1 -0
  465. package/resources/small-molecule/library-screen.d.ts +3494 -0
  466. package/resources/small-molecule/library-screen.d.ts.map +1 -0
  467. package/resources/small-molecule/library-screen.js +129 -0
  468. package/resources/small-molecule/library-screen.js.map +1 -0
  469. package/resources/small-molecule/library-screen.mjs +125 -0
  470. package/resources/small-molecule/library-screen.mjs.map +1 -0
  471. package/resources/small-molecule/small-molecule.d.mts +17 -0
  472. package/resources/small-molecule/small-molecule.d.mts.map +1 -0
  473. package/resources/small-molecule/small-molecule.d.ts +17 -0
  474. package/resources/small-molecule/small-molecule.d.ts.map +1 -0
  475. package/resources/small-molecule/small-molecule.js +24 -0
  476. package/resources/small-molecule/small-molecule.js.map +1 -0
  477. package/resources/small-molecule/small-molecule.mjs +19 -0
  478. package/resources/small-molecule/small-molecule.mjs.map +1 -0
  479. package/resources/small-molecule.d.mts +2 -0
  480. package/resources/small-molecule.d.mts.map +1 -0
  481. package/resources/small-molecule.d.ts +2 -0
  482. package/resources/small-molecule.d.ts.map +1 -0
  483. package/resources/small-molecule.js +6 -0
  484. package/resources/small-molecule.js.map +1 -0
  485. package/resources/small-molecule.mjs +3 -0
  486. package/resources/small-molecule.mjs.map +1 -0
  487. package/resources.d.mts +2 -0
  488. package/resources.d.mts.map +1 -0
  489. package/resources.d.ts +2 -0
  490. package/resources.d.ts.map +1 -0
  491. package/resources.js +5 -0
  492. package/resources.js.map +1 -0
  493. package/resources.mjs +2 -0
  494. package/resources.mjs.map +1 -0
  495. package/src/api-promise.ts +2 -0
  496. package/src/client.ts +833 -0
  497. package/src/core/README.md +3 -0
  498. package/src/core/api-promise.ts +92 -0
  499. package/src/core/error.ts +130 -0
  500. package/src/core/pagination.ts +255 -0
  501. package/src/core/resource.ts +11 -0
  502. package/src/core/uploads.ts +2 -0
  503. package/src/error.ts +2 -0
  504. package/src/index.ts +23 -0
  505. package/src/internal/README.md +3 -0
  506. package/src/internal/builtin-types.ts +93 -0
  507. package/src/internal/detect-platform.ts +196 -0
  508. package/src/internal/errors.ts +33 -0
  509. package/src/internal/headers.ts +97 -0
  510. package/src/internal/parse.ts +56 -0
  511. package/src/internal/qs/LICENSE.md +13 -0
  512. package/src/internal/qs/README.md +3 -0
  513. package/src/internal/qs/formats.ts +10 -0
  514. package/src/internal/qs/index.ts +13 -0
  515. package/src/internal/qs/stringify.ts +385 -0
  516. package/src/internal/qs/types.ts +71 -0
  517. package/src/internal/qs/utils.ts +265 -0
  518. package/src/internal/request-options.ts +91 -0
  519. package/src/internal/shim-types.ts +26 -0
  520. package/src/internal/shims.ts +107 -0
  521. package/src/internal/to-file.ts +154 -0
  522. package/src/internal/types.ts +93 -0
  523. package/src/internal/uploads.ts +187 -0
  524. package/src/internal/utils/base64.ts +40 -0
  525. package/src/internal/utils/bytes.ts +32 -0
  526. package/src/internal/utils/env.ts +18 -0
  527. package/src/internal/utils/log.ts +127 -0
  528. package/src/internal/utils/path.ts +88 -0
  529. package/src/internal/utils/query.ts +7 -0
  530. package/src/internal/utils/sleep.ts +3 -0
  531. package/src/internal/utils/uuid.ts +17 -0
  532. package/src/internal/utils/values.ts +105 -0
  533. package/src/internal/utils.ts +9 -0
  534. package/src/lib/.keep +4 -0
  535. package/src/pagination.ts +2 -0
  536. package/src/resource.ts +2 -0
  537. package/src/resources/admin/admin.ts +73 -0
  538. package/src/resources/admin/api-keys.ts +233 -0
  539. package/src/resources/admin/index.ts +30 -0
  540. package/src/resources/admin/usage.ts +107 -0
  541. package/src/resources/admin/workspaces.ts +370 -0
  542. package/src/resources/admin.ts +3 -0
  543. package/src/resources/auth.ts +68 -0
  544. package/src/resources/cli.ts +57 -0
  545. package/src/resources/index.ts +8 -0
  546. package/src/resources/predictions/index.ts +16 -0
  547. package/src/resources/predictions/predictions.ts +43 -0
  548. package/src/resources/predictions/structure-and-binding.ts +2892 -0
  549. package/src/resources/predictions.ts +3 -0
  550. package/src/resources/protein/design.ts +7175 -0
  551. package/src/resources/protein/index.ts +37 -0
  552. package/src/resources/protein/library-screen.ts +4306 -0
  553. package/src/resources/protein/protein.ts +88 -0
  554. package/src/resources/protein.ts +3 -0
  555. package/src/resources/small-molecule/design.ts +4229 -0
  556. package/src/resources/small-molecule/index.ts +37 -0
  557. package/src/resources/small-molecule/library-screen.ts +4312 -0
  558. package/src/resources/small-molecule/small-molecule.ts +88 -0
  559. package/src/resources/small-molecule.ts +3 -0
  560. package/src/resources.ts +1 -0
  561. package/src/tsconfig.json +11 -0
  562. package/src/uploads.ts +2 -0
  563. package/src/version.ts +1 -0
  564. package/uploads.d.mts +2 -0
  565. package/uploads.d.mts.map +1 -0
  566. package/uploads.d.ts +2 -0
  567. package/uploads.d.ts.map +1 -0
  568. package/uploads.js +6 -0
  569. package/uploads.js.map +1 -0
  570. package/uploads.mjs +2 -0
  571. package/uploads.mjs.map +1 -0
  572. package/version.d.mts +2 -0
  573. package/version.d.mts.map +1 -0
  574. package/version.d.ts +2 -0
  575. package/version.d.ts.map +1 -0
  576. package/version.js +5 -0
  577. package/version.js.map +1 -0
  578. package/version.mjs +2 -0
  579. package/version.mjs.map +1 -0
@@ -0,0 +1,4229 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
8
+
9
+ /**
10
+ * Generate novel small molecules optimized for binding to a protein target. Results are scored by binding confidence (likelihood of binding, for hit discovery), optimization score (binding strength ranking, for lead optimization), and structure confidence.
11
+ */
12
+ export class Design extends APIResource {
13
+ /**
14
+ * Retrieve a design run by ID, including progress and status
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const design = await client.smallMolecule.design.retrieve(
19
+ * 'id',
20
+ * );
21
+ * ```
22
+ */
23
+ retrieve(
24
+ id: string,
25
+ query: DesignRetrieveParams | null | undefined = {},
26
+ options?: RequestOptions,
27
+ ): APIPromise<DesignRetrieveResponse> {
28
+ return this._client.get(path`/compute/v1/small-molecule/design/${id}`, { query, ...options });
29
+ }
30
+
31
+ /**
32
+ * List small molecule design runs, optionally filtered by workspace
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * // Automatically fetches more pages as needed.
37
+ * for await (const designListResponse of client.smallMolecule.design.list()) {
38
+ * // ...
39
+ * }
40
+ * ```
41
+ */
42
+ list(
43
+ query: DesignListParams | null | undefined = {},
44
+ options?: RequestOptions,
45
+ ): PagePromise<DesignListResponsesCursorPage, DesignListResponse> {
46
+ return this._client.getAPIList('/compute/v1/small-molecule/design', CursorPage<DesignListResponse>, {
47
+ query,
48
+ ...options,
49
+ });
50
+ }
51
+
52
+ /**
53
+ * Permanently delete the input, output, and result data associated with this
54
+ * design run. The design run record itself is retained with a `data_deleted_at`
55
+ * timestamp. This action is irreversible.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const response =
60
+ * await client.smallMolecule.design.deleteData('id');
61
+ * ```
62
+ */
63
+ deleteData(id: string, options?: RequestOptions): APIPromise<DesignDeleteDataResponse> {
64
+ return this._client.post(path`/compute/v1/small-molecule/design/${id}/delete-data`, options);
65
+ }
66
+
67
+ /**
68
+ * Estimate the billed cost of a small molecule design run without creating any
69
+ * resource or consuming GPU. Includes the SynFlowNet generation charges implied by
70
+ * the scheduler iteration cap plus Boltz2 scoring for each requested molecule.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * const response =
75
+ * await client.smallMolecule.design.estimateCost({
76
+ * num_molecules: 10,
77
+ * target: {
78
+ * entities: [
79
+ * {
80
+ * chain_ids: ['string'],
81
+ * type: 'protein',
82
+ * value: 'value',
83
+ * },
84
+ * ],
85
+ * },
86
+ * });
87
+ * ```
88
+ */
89
+ estimateCost(
90
+ body: DesignEstimateCostParams,
91
+ options?: RequestOptions,
92
+ ): APIPromise<DesignEstimateCostResponse> {
93
+ return this._client.post('/compute/v1/small-molecule/design/estimate-cost', { body, ...options });
94
+ }
95
+
96
+ /**
97
+ * Retrieve paginated results from a design run
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * // Automatically fetches more pages as needed.
102
+ * for await (const designListResultsResponse of client.smallMolecule.design.listResults(
103
+ * 'id',
104
+ * )) {
105
+ * // ...
106
+ * }
107
+ * ```
108
+ */
109
+ listResults(
110
+ id: string,
111
+ query: DesignListResultsParams | null | undefined = {},
112
+ options?: RequestOptions,
113
+ ): PagePromise<DesignListResultsResponsesCursorPage, DesignListResultsResponse> {
114
+ return this._client.getAPIList(
115
+ path`/compute/v1/small-molecule/design/${id}/results`,
116
+ CursorPage<DesignListResultsResponse>,
117
+ { query, ...options },
118
+ );
119
+ }
120
+
121
+ /**
122
+ * Create a new design run that generates novel small molecule candidates for a
123
+ * protein target
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const response = await client.smallMolecule.design.start({
128
+ * num_molecules: 10,
129
+ * target: {
130
+ * entities: [
131
+ * {
132
+ * chain_ids: ['string'],
133
+ * type: 'protein',
134
+ * value: 'value',
135
+ * },
136
+ * ],
137
+ * },
138
+ * });
139
+ * ```
140
+ */
141
+ start(body: DesignStartParams, options?: RequestOptions): APIPromise<DesignStartResponse> {
142
+ return this._client.post('/compute/v1/small-molecule/design', { body, ...options });
143
+ }
144
+
145
+ /**
146
+ * Stop an in-progress design run early
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * const response = await client.smallMolecule.design.stop(
151
+ * 'id',
152
+ * );
153
+ * ```
154
+ */
155
+ stop(id: string, options?: RequestOptions): APIPromise<DesignStopResponse> {
156
+ return this._client.post(path`/compute/v1/small-molecule/design/${id}/stop`, options);
157
+ }
158
+ }
159
+
160
+ export type DesignListResponsesCursorPage = CursorPage<DesignListResponse>;
161
+
162
+ export type DesignListResultsResponsesCursorPage = CursorPage<DesignListResultsResponse>;
163
+
164
+ /**
165
+ * A small molecule design engine run that generates novel molecules
166
+ */
167
+ export interface DesignRetrieveResponse {
168
+ /**
169
+ * Unique SmDesignRun identifier
170
+ */
171
+ id: string;
172
+
173
+ completed_at: string | null;
174
+
175
+ created_at: string;
176
+
177
+ /**
178
+ * When the input, output, and result data was permanently deleted. Null if data
179
+ * has not been deleted.
180
+ */
181
+ data_deleted_at: string | null;
182
+
183
+ /**
184
+ * Engine used for small molecule design
185
+ */
186
+ engine: 'boltz-sm-design';
187
+
188
+ /**
189
+ * Engine version used for small molecule design
190
+ */
191
+ engine_version: string;
192
+
193
+ error: DesignRetrieveResponse.Error | null;
194
+
195
+ /**
196
+ * Pipeline input (null if data deleted)
197
+ */
198
+ input: DesignRetrieveResponse.Input | null;
199
+
200
+ /**
201
+ * Whether this resource was created with a live API key.
202
+ */
203
+ livemode: boolean;
204
+
205
+ progress: DesignRetrieveResponse.Progress | null;
206
+
207
+ started_at: string | null;
208
+
209
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
210
+
211
+ stopped_at: string | null;
212
+
213
+ /**
214
+ * Workspace ID
215
+ */
216
+ workspace_id: string;
217
+
218
+ /**
219
+ * Client-provided idempotency key
220
+ */
221
+ idempotency_key?: string;
222
+ }
223
+
224
+ export namespace DesignRetrieveResponse {
225
+ export interface Error {
226
+ /**
227
+ * Machine-readable error code
228
+ */
229
+ code: string;
230
+
231
+ /**
232
+ * Human-readable error message
233
+ */
234
+ message: string;
235
+
236
+ /**
237
+ * Additional field-level error details keyed by input path, when available.
238
+ */
239
+ details?: unknown;
240
+ }
241
+
242
+ /**
243
+ * Pipeline input (null if data deleted)
244
+ */
245
+ export interface Input {
246
+ /**
247
+ * Number of molecules to generate. Must be between 10 and 1,000,000.
248
+ */
249
+ num_molecules: number;
250
+
251
+ /**
252
+ * Target protein with binding pocket for small molecule design or screening
253
+ */
254
+ target: Input.Target;
255
+
256
+ /**
257
+ * Chemical space to constrain generated molecules. Currently only 'enamine_real'
258
+ * (Enamine REAL chemical space) is supported. Additional options may be added in
259
+ * the future.
260
+ */
261
+ chemical_space?: 'enamine_real';
262
+
263
+ /**
264
+ * Client-provided key to prevent duplicate submissions on retries
265
+ */
266
+ idempotency_key?: string;
267
+
268
+ /**
269
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
270
+ * and custom filters.
271
+ */
272
+ molecule_filters?: Input.MoleculeFilters;
273
+
274
+ /**
275
+ * Target workspace ID (admin keys only; ignored for workspace keys)
276
+ */
277
+ workspace_id?: string;
278
+ }
279
+
280
+ export namespace Input {
281
+ /**
282
+ * Target protein with binding pocket for small molecule design or screening
283
+ */
284
+ export interface Target {
285
+ /**
286
+ * Protein entities defining the target structure. Each entity represents a protein
287
+ * chain.
288
+ */
289
+ entities: Array<Target.Entity>;
290
+
291
+ /**
292
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
293
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
294
+ */
295
+ bonds?: Array<Target.Bond>;
296
+
297
+ /**
298
+ * Structural constraints (pocket and contact). Atom-level ligand references
299
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
300
+ */
301
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
302
+
303
+ /**
304
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
305
+ * and the value is an array of 0-indexed residue indices that define the binding
306
+ * pocket on that chain. When provided, these residues guide pocket extraction and
307
+ * add a derived pocket constraint during affinity predictions. That derived
308
+ * constraint remains separate from any explicit pocket constraints in
309
+ * target.constraints. When omitted, the model auto-detects the pocket.
310
+ */
311
+ pocket_residues?: { [key: string]: Array<number> };
312
+
313
+ /**
314
+ * Reference ligands as SMILES strings that help the model identify the binding
315
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
316
+ * detection.
317
+ */
318
+ reference_ligands?: Array<string>;
319
+ }
320
+
321
+ export namespace Target {
322
+ export interface Entity {
323
+ /**
324
+ * Chain IDs for this entity
325
+ */
326
+ chain_ids: Array<string>;
327
+
328
+ type: 'protein';
329
+
330
+ /**
331
+ * Amino acid sequence (one-letter codes)
332
+ */
333
+ value: string;
334
+
335
+ /**
336
+ * Whether the sequence is cyclic
337
+ */
338
+ cyclic?: boolean;
339
+
340
+ /**
341
+ * Post-translational modifications. Optional; defaults to an empty list when
342
+ * omitted.
343
+ */
344
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
345
+ }
346
+
347
+ export namespace Entity {
348
+ export interface CcdModificationResponse {
349
+ /**
350
+ * 0-based index of the residue to modify
351
+ */
352
+ residue_index: number;
353
+
354
+ type: 'ccd';
355
+
356
+ /**
357
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
358
+ * phosphoserine)
359
+ */
360
+ value: string;
361
+ }
362
+
363
+ export interface SmilesModificationResponse {
364
+ /**
365
+ * 0-based index of the residue to modify
366
+ */
367
+ residue_index: number;
368
+
369
+ type: 'smiles';
370
+
371
+ /**
372
+ * SMILES string for the modification
373
+ */
374
+ value: string;
375
+ }
376
+ }
377
+
378
+ /**
379
+ * Bond between two atoms. Atom-level ligand references currently support
380
+ * ligand_ccd entities only; ligand_smiles is unsupported.
381
+ */
382
+ export interface Bond {
383
+ /**
384
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
385
+ * entities only; ligand_smiles is unsupported.
386
+ */
387
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
388
+
389
+ /**
390
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
391
+ * entities only; ligand_smiles is unsupported.
392
+ */
393
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
394
+ }
395
+
396
+ export namespace Bond {
397
+ /**
398
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
399
+ * entities only; ligand_smiles is unsupported.
400
+ */
401
+ export interface LigandAtomResponse {
402
+ /**
403
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
404
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
405
+ */
406
+ atom_name: string;
407
+
408
+ /**
409
+ * Chain ID containing the atom
410
+ */
411
+ chain_id: string;
412
+
413
+ type: 'ligand_atom';
414
+ }
415
+
416
+ export interface PolymerAtomResponse {
417
+ /**
418
+ * Standardized atom name (verifiable in CIF file on RCSB)
419
+ */
420
+ atom_name: string;
421
+
422
+ /**
423
+ * Chain ID containing the atom
424
+ */
425
+ chain_id: string;
426
+
427
+ /**
428
+ * 0-based residue index
429
+ */
430
+ residue_index: number;
431
+
432
+ type: 'polymer_atom';
433
+ }
434
+
435
+ /**
436
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
437
+ * entities only; ligand_smiles is unsupported.
438
+ */
439
+ export interface LigandAtomResponse {
440
+ /**
441
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
442
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
443
+ */
444
+ atom_name: string;
445
+
446
+ /**
447
+ * Chain ID containing the atom
448
+ */
449
+ chain_id: string;
450
+
451
+ type: 'ligand_atom';
452
+ }
453
+
454
+ export interface PolymerAtomResponse {
455
+ /**
456
+ * Standardized atom name (verifiable in CIF file on RCSB)
457
+ */
458
+ atom_name: string;
459
+
460
+ /**
461
+ * Chain ID containing the atom
462
+ */
463
+ chain_id: string;
464
+
465
+ /**
466
+ * 0-based residue index
467
+ */
468
+ residue_index: number;
469
+
470
+ type: 'polymer_atom';
471
+ }
472
+ }
473
+
474
+ /**
475
+ * Constrains the binder to interact with specific pocket residues on the target.
476
+ */
477
+ export interface PocketConstraintResponse {
478
+ /**
479
+ * Chain ID of the binder molecule
480
+ */
481
+ binder_chain_id: string;
482
+
483
+ /**
484
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
485
+ * the value is an array of 0-indexed residue indices that define the pocket on
486
+ * that chain.
487
+ */
488
+ contact_residues: { [key: string]: Array<number> };
489
+
490
+ /**
491
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
492
+ * Typical range: 4-8 A.
493
+ */
494
+ max_distance_angstrom: number;
495
+
496
+ type: 'pocket';
497
+
498
+ /**
499
+ * Whether to force the constraint
500
+ */
501
+ force?: boolean;
502
+ }
503
+
504
+ /**
505
+ * Contact constraint between two tokens. Atom-level ligand references currently
506
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
507
+ */
508
+ export interface ContactConstraintResponse {
509
+ /**
510
+ * Maximum distance in Angstroms
511
+ */
512
+ max_distance_angstrom: number;
513
+
514
+ /**
515
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
516
+ * entities only; ligand_smiles is unsupported.
517
+ */
518
+ token1:
519
+ | ContactConstraintResponse.PolymerContactTokenResponse
520
+ | ContactConstraintResponse.LigandContactTokenResponse;
521
+
522
+ /**
523
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
524
+ * entities only; ligand_smiles is unsupported.
525
+ */
526
+ token2:
527
+ | ContactConstraintResponse.PolymerContactTokenResponse
528
+ | ContactConstraintResponse.LigandContactTokenResponse;
529
+
530
+ type: 'contact';
531
+
532
+ /**
533
+ * Whether to force the constraint
534
+ */
535
+ force?: boolean;
536
+ }
537
+
538
+ export namespace ContactConstraintResponse {
539
+ export interface PolymerContactTokenResponse {
540
+ /**
541
+ * Chain ID
542
+ */
543
+ chain_id: string;
544
+
545
+ /**
546
+ * 0-based residue index
547
+ */
548
+ residue_index: number;
549
+
550
+ type: 'polymer_contact';
551
+ }
552
+
553
+ /**
554
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
555
+ * entities only; ligand_smiles is unsupported.
556
+ */
557
+ export interface LigandContactTokenResponse {
558
+ /**
559
+ * Atom name. Atom-level references to ligand_smiles entities are currently
560
+ * unsupported; use ligand_ccd instead.
561
+ */
562
+ atom_name: string;
563
+
564
+ /**
565
+ * Chain ID
566
+ */
567
+ chain_id: string;
568
+
569
+ type: 'ligand_contact';
570
+ }
571
+
572
+ export interface PolymerContactTokenResponse {
573
+ /**
574
+ * Chain ID
575
+ */
576
+ chain_id: string;
577
+
578
+ /**
579
+ * 0-based residue index
580
+ */
581
+ residue_index: number;
582
+
583
+ type: 'polymer_contact';
584
+ }
585
+
586
+ /**
587
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
588
+ * entities only; ligand_smiles is unsupported.
589
+ */
590
+ export interface LigandContactTokenResponse {
591
+ /**
592
+ * Atom name. Atom-level references to ligand_smiles entities are currently
593
+ * unsupported; use ligand_ccd instead.
594
+ */
595
+ atom_name: string;
596
+
597
+ /**
598
+ * Chain ID
599
+ */
600
+ chain_id: string;
601
+
602
+ type: 'ligand_contact';
603
+ }
604
+ }
605
+ }
606
+
607
+ /**
608
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
609
+ * and custom filters.
610
+ */
611
+ export interface MoleculeFilters {
612
+ /**
613
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
614
+ * which removes molecules matching known problematic substructures. 'recommended'
615
+ * (default): applies a curated set of alerts balancing safety and hit rate.
616
+ * 'extra': adds additional alerts beyond the recommended set for stricter
617
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
618
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
619
+ * custom_filters will be applied.
620
+ */
621
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
622
+
623
+ /**
624
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
625
+ */
626
+ custom_filters?: Array<
627
+ | MoleculeFilters.LipinskiFilterResponse
628
+ | MoleculeFilters.RdkitDescriptorFilterResponse
629
+ | MoleculeFilters.SmartsCustomFilterResponse
630
+ | MoleculeFilters.SmartsCatalogFilterResponse
631
+ | MoleculeFilters.SmilesRegexFilterResponse
632
+ >;
633
+ }
634
+
635
+ export namespace MoleculeFilters {
636
+ /**
637
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
638
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
639
+ * bond acceptors.
640
+ */
641
+ export interface LipinskiFilterResponse {
642
+ /**
643
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
644
+ */
645
+ max_hba: number;
646
+
647
+ /**
648
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
649
+ */
650
+ max_hbd: number;
651
+
652
+ /**
653
+ * Maximum LogP. Lipinski threshold: 5
654
+ */
655
+ max_logp: number;
656
+
657
+ /**
658
+ * Maximum molecular weight (Da). Lipinski threshold: 500
659
+ */
660
+ max_mw: number;
661
+
662
+ type: 'lipinski_filter';
663
+
664
+ /**
665
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
666
+ * (all rules must pass).
667
+ */
668
+ allow_single_violation?: boolean;
669
+ }
670
+
671
+ /**
672
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
673
+ * to a min/max range. Only descriptors you provide are checked — omitted
674
+ * descriptors are unconstrained.
675
+ */
676
+ export interface RdkitDescriptorFilterResponse {
677
+ type: 'rdkit_descriptor_filter';
678
+
679
+ /**
680
+ * Min/max range constraint for an RDKit molecular descriptor
681
+ */
682
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
683
+
684
+ /**
685
+ * Min/max range constraint for an RDKit molecular descriptor
686
+ */
687
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
688
+
689
+ /**
690
+ * Min/max range constraint for an RDKit molecular descriptor
691
+ */
692
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
693
+
694
+ /**
695
+ * Min/max range constraint for an RDKit molecular descriptor
696
+ */
697
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
698
+
699
+ /**
700
+ * Min/max range constraint for an RDKit molecular descriptor
701
+ */
702
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
703
+
704
+ /**
705
+ * Min/max range constraint for an RDKit molecular descriptor
706
+ */
707
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
708
+
709
+ /**
710
+ * Min/max range constraint for an RDKit molecular descriptor
711
+ */
712
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
713
+
714
+ /**
715
+ * Min/max range constraint for an RDKit molecular descriptor
716
+ */
717
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
718
+
719
+ /**
720
+ * Min/max range constraint for an RDKit molecular descriptor
721
+ */
722
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
723
+
724
+ /**
725
+ * Min/max range constraint for an RDKit molecular descriptor
726
+ */
727
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
728
+ }
729
+
730
+ export namespace RdkitDescriptorFilterResponse {
731
+ /**
732
+ * Min/max range constraint for an RDKit molecular descriptor
733
+ */
734
+ export interface FractionCsp3 {
735
+ /**
736
+ * Maximum allowed value (inclusive)
737
+ */
738
+ max?: number;
739
+
740
+ /**
741
+ * Minimum allowed value (inclusive)
742
+ */
743
+ min?: number;
744
+ }
745
+
746
+ /**
747
+ * Min/max range constraint for an RDKit molecular descriptor
748
+ */
749
+ export interface MolLogp {
750
+ /**
751
+ * Maximum allowed value (inclusive)
752
+ */
753
+ max?: number;
754
+
755
+ /**
756
+ * Minimum allowed value (inclusive)
757
+ */
758
+ min?: number;
759
+ }
760
+
761
+ /**
762
+ * Min/max range constraint for an RDKit molecular descriptor
763
+ */
764
+ export interface MolWt {
765
+ /**
766
+ * Maximum allowed value (inclusive)
767
+ */
768
+ max?: number;
769
+
770
+ /**
771
+ * Minimum allowed value (inclusive)
772
+ */
773
+ min?: number;
774
+ }
775
+
776
+ /**
777
+ * Min/max range constraint for an RDKit molecular descriptor
778
+ */
779
+ export interface NumAromaticRings {
780
+ /**
781
+ * Maximum allowed value (inclusive)
782
+ */
783
+ max?: number;
784
+
785
+ /**
786
+ * Minimum allowed value (inclusive)
787
+ */
788
+ min?: number;
789
+ }
790
+
791
+ /**
792
+ * Min/max range constraint for an RDKit molecular descriptor
793
+ */
794
+ export interface NumHAcceptors {
795
+ /**
796
+ * Maximum allowed value (inclusive)
797
+ */
798
+ max?: number;
799
+
800
+ /**
801
+ * Minimum allowed value (inclusive)
802
+ */
803
+ min?: number;
804
+ }
805
+
806
+ /**
807
+ * Min/max range constraint for an RDKit molecular descriptor
808
+ */
809
+ export interface NumHDonors {
810
+ /**
811
+ * Maximum allowed value (inclusive)
812
+ */
813
+ max?: number;
814
+
815
+ /**
816
+ * Minimum allowed value (inclusive)
817
+ */
818
+ min?: number;
819
+ }
820
+
821
+ /**
822
+ * Min/max range constraint for an RDKit molecular descriptor
823
+ */
824
+ export interface NumHeteroatoms {
825
+ /**
826
+ * Maximum allowed value (inclusive)
827
+ */
828
+ max?: number;
829
+
830
+ /**
831
+ * Minimum allowed value (inclusive)
832
+ */
833
+ min?: number;
834
+ }
835
+
836
+ /**
837
+ * Min/max range constraint for an RDKit molecular descriptor
838
+ */
839
+ export interface NumRings {
840
+ /**
841
+ * Maximum allowed value (inclusive)
842
+ */
843
+ max?: number;
844
+
845
+ /**
846
+ * Minimum allowed value (inclusive)
847
+ */
848
+ min?: number;
849
+ }
850
+
851
+ /**
852
+ * Min/max range constraint for an RDKit molecular descriptor
853
+ */
854
+ export interface NumRotatableBonds {
855
+ /**
856
+ * Maximum allowed value (inclusive)
857
+ */
858
+ max?: number;
859
+
860
+ /**
861
+ * Minimum allowed value (inclusive)
862
+ */
863
+ min?: number;
864
+ }
865
+
866
+ /**
867
+ * Min/max range constraint for an RDKit molecular descriptor
868
+ */
869
+ export interface Tpsa {
870
+ /**
871
+ * Maximum allowed value (inclusive)
872
+ */
873
+ max?: number;
874
+
875
+ /**
876
+ * Minimum allowed value (inclusive)
877
+ */
878
+ min?: number;
879
+ }
880
+ }
881
+
882
+ /**
883
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
884
+ * rejected.
885
+ */
886
+ export interface SmartsCustomFilterResponse {
887
+ /**
888
+ * SMARTS patterns. Molecules matching any pattern are rejected.
889
+ */
890
+ patterns: Array<string>;
891
+
892
+ type: 'smarts_custom_filter';
893
+ }
894
+
895
+ /**
896
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
897
+ */
898
+ export interface SmartsCatalogFilterResponse {
899
+ /**
900
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
901
+ * reject known problematic substructures.
902
+ */
903
+ catalog:
904
+ | 'PAINS'
905
+ | 'PAINS_A'
906
+ | 'PAINS_B'
907
+ | 'PAINS_C'
908
+ | 'BRENK'
909
+ | 'CHEMBL'
910
+ | 'CHEMBL_BMS'
911
+ | 'CHEMBL_Dundee'
912
+ | 'CHEMBL_Glaxo'
913
+ | 'CHEMBL_Inpharmatica'
914
+ | 'CHEMBL_LINT'
915
+ | 'CHEMBL_MLSMR'
916
+ | 'CHEMBL_SureChEMBL'
917
+ | 'NIH';
918
+
919
+ type: 'smarts_catalog_filter';
920
+ }
921
+
922
+ /**
923
+ * Filter molecules by regex patterns on their SMILES representation.
924
+ */
925
+ export interface SmilesRegexFilterResponse {
926
+ /**
927
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
928
+ * rejected.
929
+ */
930
+ patterns: Array<string>;
931
+
932
+ type: 'smiles_regex_filter';
933
+ }
934
+ }
935
+ }
936
+
937
+ export interface Progress {
938
+ /**
939
+ * Number of molecules generated so far
940
+ */
941
+ num_molecules_generated: number;
942
+
943
+ /**
944
+ * Total number of molecules requested
945
+ */
946
+ total_molecules_to_generate: number;
947
+
948
+ /**
949
+ * ID of the most recently generated result
950
+ */
951
+ latest_result_id?: string;
952
+ }
953
+ }
954
+
955
+ /**
956
+ * Summary of a small molecule design engine run (excludes input)
957
+ */
958
+ export interface DesignListResponse {
959
+ /**
960
+ * Unique SmDesignRunSummary identifier
961
+ */
962
+ id: string;
963
+
964
+ completed_at: string | null;
965
+
966
+ created_at: string;
967
+
968
+ /**
969
+ * When the input, output, and result data was permanently deleted. Null if data
970
+ * has not been deleted.
971
+ */
972
+ data_deleted_at: string | null;
973
+
974
+ /**
975
+ * Engine used for small molecule design
976
+ */
977
+ engine: 'boltz-sm-design';
978
+
979
+ /**
980
+ * Engine version used for small molecule design
981
+ */
982
+ engine_version: string;
983
+
984
+ error: DesignListResponse.Error | null;
985
+
986
+ /**
987
+ * Whether this resource was created with a live API key.
988
+ */
989
+ livemode: boolean;
990
+
991
+ progress: DesignListResponse.Progress | null;
992
+
993
+ started_at: string | null;
994
+
995
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
996
+
997
+ stopped_at: string | null;
998
+
999
+ /**
1000
+ * Workspace ID
1001
+ */
1002
+ workspace_id: string;
1003
+
1004
+ /**
1005
+ * Client-provided idempotency key
1006
+ */
1007
+ idempotency_key?: string;
1008
+ }
1009
+
1010
+ export namespace DesignListResponse {
1011
+ export interface Error {
1012
+ /**
1013
+ * Machine-readable error code
1014
+ */
1015
+ code: string;
1016
+
1017
+ /**
1018
+ * Human-readable error message
1019
+ */
1020
+ message: string;
1021
+
1022
+ /**
1023
+ * Additional field-level error details keyed by input path, when available.
1024
+ */
1025
+ details?: unknown;
1026
+ }
1027
+
1028
+ export interface Progress {
1029
+ /**
1030
+ * Number of molecules generated so far
1031
+ */
1032
+ num_molecules_generated: number;
1033
+
1034
+ /**
1035
+ * Total number of molecules requested
1036
+ */
1037
+ total_molecules_to_generate: number;
1038
+
1039
+ /**
1040
+ * ID of the most recently generated result
1041
+ */
1042
+ latest_result_id?: string;
1043
+ }
1044
+ }
1045
+
1046
+ export interface DesignDeleteDataResponse {
1047
+ /**
1048
+ * ID of the resource whose data was deleted
1049
+ */
1050
+ id: string;
1051
+
1052
+ data_deleted: true;
1053
+
1054
+ /**
1055
+ * When the data was deleted
1056
+ */
1057
+ data_deleted_at: string;
1058
+ }
1059
+
1060
+ /**
1061
+ * Estimate response with monetary values encoded as decimal strings to preserve
1062
+ * precision.
1063
+ */
1064
+ export interface DesignEstimateCostResponse {
1065
+ /**
1066
+ * Cost breakdown for the billed application.
1067
+ */
1068
+ breakdown: DesignEstimateCostResponse.Breakdown;
1069
+
1070
+ disclaimer: string;
1071
+
1072
+ /**
1073
+ * Estimated total cost as a decimal string
1074
+ */
1075
+ estimated_cost_usd: string;
1076
+ }
1077
+
1078
+ export namespace DesignEstimateCostResponse {
1079
+ /**
1080
+ * Cost breakdown for the billed application.
1081
+ */
1082
+ export interface Breakdown {
1083
+ application:
1084
+ | 'structure_and_binding'
1085
+ | 'small_molecule_design'
1086
+ | 'small_molecule_library_screen'
1087
+ | 'protein_design'
1088
+ | 'protein_library_screen'
1089
+ | 'adme';
1090
+
1091
+ /**
1092
+ * Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal
1093
+ * places. This may include token-size multipliers or generation overhead;
1094
+ * estimated_cost_usd is the authoritative total.
1095
+ */
1096
+ cost_per_unit_usd: string;
1097
+
1098
+ /**
1099
+ * Number of units shown for the estimate. For structure-and-binding, this is the
1100
+ * requested number of samples. For protein and small-molecule design/screen
1101
+ * endpoints, this is the requested number of proteins or molecules.
1102
+ */
1103
+ num_units: number;
1104
+ }
1105
+ }
1106
+
1107
+ /**
1108
+ * A single designed small molecule result
1109
+ */
1110
+ export interface DesignListResultsResponse {
1111
+ /**
1112
+ * Unique result ID
1113
+ */
1114
+ id: string;
1115
+
1116
+ artifacts: DesignListResultsResponse.Artifacts;
1117
+
1118
+ created_at: string;
1119
+
1120
+ /**
1121
+ * Scoring metrics for a designed small molecule
1122
+ */
1123
+ metrics: DesignListResultsResponse.Metrics;
1124
+
1125
+ /**
1126
+ * SMILES string of the designed molecule
1127
+ */
1128
+ smiles: string;
1129
+
1130
+ /**
1131
+ * Warnings about potential quality issues with this result.
1132
+ */
1133
+ warnings?: Array<DesignListResultsResponse.Warning>;
1134
+ }
1135
+
1136
+ export namespace DesignListResultsResponse {
1137
+ export interface Artifacts {
1138
+ archive: Artifacts.Archive;
1139
+
1140
+ structure: Artifacts.Structure;
1141
+ }
1142
+
1143
+ export namespace Artifacts {
1144
+ export interface Archive {
1145
+ /**
1146
+ * URL to download the file
1147
+ */
1148
+ url: string;
1149
+
1150
+ /**
1151
+ * When the presigned URL expires
1152
+ */
1153
+ url_expires_at: string;
1154
+ }
1155
+
1156
+ export interface Structure {
1157
+ /**
1158
+ * URL to download the file
1159
+ */
1160
+ url: string;
1161
+
1162
+ /**
1163
+ * When the presigned URL expires
1164
+ */
1165
+ url_expires_at: string;
1166
+ }
1167
+ }
1168
+
1169
+ /**
1170
+ * Scoring metrics for a designed small molecule
1171
+ */
1172
+ export interface Metrics {
1173
+ /**
1174
+ * Confidence that the molecule binds the target (0-1). Primary metric for hit
1175
+ * discovery.
1176
+ */
1177
+ binding_confidence: number;
1178
+
1179
+ /**
1180
+ * Interface pLDDT for the complex (0-1 float). Confidence at the binding
1181
+ * interface.
1182
+ */
1183
+ complex_iplddt: number;
1184
+
1185
+ /**
1186
+ * pLDDT for the full complex (0-1 float).
1187
+ */
1188
+ complex_plddt: number;
1189
+
1190
+ /**
1191
+ * Interface predicted TM score (0-1). Confidence in relative positioning of ligand
1192
+ * and protein.
1193
+ */
1194
+ iptm: number;
1195
+
1196
+ /**
1197
+ * Binding strength ranking score for lead optimization. Higher values indicate
1198
+ * stronger predicted binding.
1199
+ */
1200
+ optimization_score: number;
1201
+
1202
+ /**
1203
+ * Predicted TM score (0-1). Global structure quality metric.
1204
+ */
1205
+ ptm: number;
1206
+
1207
+ /**
1208
+ * Confidence in the predicted 3D structure (0-1).
1209
+ */
1210
+ structure_confidence: number;
1211
+ }
1212
+
1213
+ /**
1214
+ * A warning about a potential quality issue with a result
1215
+ */
1216
+ export interface Warning {
1217
+ /**
1218
+ * Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")
1219
+ */
1220
+ code: string;
1221
+
1222
+ /**
1223
+ * Human-readable description of the warning
1224
+ */
1225
+ message: string;
1226
+ }
1227
+ }
1228
+
1229
+ /**
1230
+ * A small molecule design engine run that generates novel molecules
1231
+ */
1232
+ export interface DesignStartResponse {
1233
+ /**
1234
+ * Unique SmDesignRun identifier
1235
+ */
1236
+ id: string;
1237
+
1238
+ completed_at: string | null;
1239
+
1240
+ created_at: string;
1241
+
1242
+ /**
1243
+ * When the input, output, and result data was permanently deleted. Null if data
1244
+ * has not been deleted.
1245
+ */
1246
+ data_deleted_at: string | null;
1247
+
1248
+ /**
1249
+ * Engine used for small molecule design
1250
+ */
1251
+ engine: 'boltz-sm-design';
1252
+
1253
+ /**
1254
+ * Engine version used for small molecule design
1255
+ */
1256
+ engine_version: string;
1257
+
1258
+ error: DesignStartResponse.Error | null;
1259
+
1260
+ /**
1261
+ * Pipeline input (null if data deleted)
1262
+ */
1263
+ input: DesignStartResponse.Input | null;
1264
+
1265
+ /**
1266
+ * Whether this resource was created with a live API key.
1267
+ */
1268
+ livemode: boolean;
1269
+
1270
+ progress: DesignStartResponse.Progress | null;
1271
+
1272
+ started_at: string | null;
1273
+
1274
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
1275
+
1276
+ stopped_at: string | null;
1277
+
1278
+ /**
1279
+ * Workspace ID
1280
+ */
1281
+ workspace_id: string;
1282
+
1283
+ /**
1284
+ * Client-provided idempotency key
1285
+ */
1286
+ idempotency_key?: string;
1287
+ }
1288
+
1289
+ export namespace DesignStartResponse {
1290
+ export interface Error {
1291
+ /**
1292
+ * Machine-readable error code
1293
+ */
1294
+ code: string;
1295
+
1296
+ /**
1297
+ * Human-readable error message
1298
+ */
1299
+ message: string;
1300
+
1301
+ /**
1302
+ * Additional field-level error details keyed by input path, when available.
1303
+ */
1304
+ details?: unknown;
1305
+ }
1306
+
1307
+ /**
1308
+ * Pipeline input (null if data deleted)
1309
+ */
1310
+ export interface Input {
1311
+ /**
1312
+ * Number of molecules to generate. Must be between 10 and 1,000,000.
1313
+ */
1314
+ num_molecules: number;
1315
+
1316
+ /**
1317
+ * Target protein with binding pocket for small molecule design or screening
1318
+ */
1319
+ target: Input.Target;
1320
+
1321
+ /**
1322
+ * Chemical space to constrain generated molecules. Currently only 'enamine_real'
1323
+ * (Enamine REAL chemical space) is supported. Additional options may be added in
1324
+ * the future.
1325
+ */
1326
+ chemical_space?: 'enamine_real';
1327
+
1328
+ /**
1329
+ * Client-provided key to prevent duplicate submissions on retries
1330
+ */
1331
+ idempotency_key?: string;
1332
+
1333
+ /**
1334
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
1335
+ * and custom filters.
1336
+ */
1337
+ molecule_filters?: Input.MoleculeFilters;
1338
+
1339
+ /**
1340
+ * Target workspace ID (admin keys only; ignored for workspace keys)
1341
+ */
1342
+ workspace_id?: string;
1343
+ }
1344
+
1345
+ export namespace Input {
1346
+ /**
1347
+ * Target protein with binding pocket for small molecule design or screening
1348
+ */
1349
+ export interface Target {
1350
+ /**
1351
+ * Protein entities defining the target structure. Each entity represents a protein
1352
+ * chain.
1353
+ */
1354
+ entities: Array<Target.Entity>;
1355
+
1356
+ /**
1357
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
1358
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
1359
+ */
1360
+ bonds?: Array<Target.Bond>;
1361
+
1362
+ /**
1363
+ * Structural constraints (pocket and contact). Atom-level ligand references
1364
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
1365
+ */
1366
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
1367
+
1368
+ /**
1369
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
1370
+ * and the value is an array of 0-indexed residue indices that define the binding
1371
+ * pocket on that chain. When provided, these residues guide pocket extraction and
1372
+ * add a derived pocket constraint during affinity predictions. That derived
1373
+ * constraint remains separate from any explicit pocket constraints in
1374
+ * target.constraints. When omitted, the model auto-detects the pocket.
1375
+ */
1376
+ pocket_residues?: { [key: string]: Array<number> };
1377
+
1378
+ /**
1379
+ * Reference ligands as SMILES strings that help the model identify the binding
1380
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
1381
+ * detection.
1382
+ */
1383
+ reference_ligands?: Array<string>;
1384
+ }
1385
+
1386
+ export namespace Target {
1387
+ export interface Entity {
1388
+ /**
1389
+ * Chain IDs for this entity
1390
+ */
1391
+ chain_ids: Array<string>;
1392
+
1393
+ type: 'protein';
1394
+
1395
+ /**
1396
+ * Amino acid sequence (one-letter codes)
1397
+ */
1398
+ value: string;
1399
+
1400
+ /**
1401
+ * Whether the sequence is cyclic
1402
+ */
1403
+ cyclic?: boolean;
1404
+
1405
+ /**
1406
+ * Post-translational modifications. Optional; defaults to an empty list when
1407
+ * omitted.
1408
+ */
1409
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
1410
+ }
1411
+
1412
+ export namespace Entity {
1413
+ export interface CcdModificationResponse {
1414
+ /**
1415
+ * 0-based index of the residue to modify
1416
+ */
1417
+ residue_index: number;
1418
+
1419
+ type: 'ccd';
1420
+
1421
+ /**
1422
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
1423
+ * phosphoserine)
1424
+ */
1425
+ value: string;
1426
+ }
1427
+
1428
+ export interface SmilesModificationResponse {
1429
+ /**
1430
+ * 0-based index of the residue to modify
1431
+ */
1432
+ residue_index: number;
1433
+
1434
+ type: 'smiles';
1435
+
1436
+ /**
1437
+ * SMILES string for the modification
1438
+ */
1439
+ value: string;
1440
+ }
1441
+ }
1442
+
1443
+ /**
1444
+ * Bond between two atoms. Atom-level ligand references currently support
1445
+ * ligand_ccd entities only; ligand_smiles is unsupported.
1446
+ */
1447
+ export interface Bond {
1448
+ /**
1449
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1450
+ * entities only; ligand_smiles is unsupported.
1451
+ */
1452
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
1453
+
1454
+ /**
1455
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1456
+ * entities only; ligand_smiles is unsupported.
1457
+ */
1458
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
1459
+ }
1460
+
1461
+ export namespace Bond {
1462
+ /**
1463
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1464
+ * entities only; ligand_smiles is unsupported.
1465
+ */
1466
+ export interface LigandAtomResponse {
1467
+ /**
1468
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
1469
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
1470
+ */
1471
+ atom_name: string;
1472
+
1473
+ /**
1474
+ * Chain ID containing the atom
1475
+ */
1476
+ chain_id: string;
1477
+
1478
+ type: 'ligand_atom';
1479
+ }
1480
+
1481
+ export interface PolymerAtomResponse {
1482
+ /**
1483
+ * Standardized atom name (verifiable in CIF file on RCSB)
1484
+ */
1485
+ atom_name: string;
1486
+
1487
+ /**
1488
+ * Chain ID containing the atom
1489
+ */
1490
+ chain_id: string;
1491
+
1492
+ /**
1493
+ * 0-based residue index
1494
+ */
1495
+ residue_index: number;
1496
+
1497
+ type: 'polymer_atom';
1498
+ }
1499
+
1500
+ /**
1501
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
1502
+ * entities only; ligand_smiles is unsupported.
1503
+ */
1504
+ export interface LigandAtomResponse {
1505
+ /**
1506
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
1507
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
1508
+ */
1509
+ atom_name: string;
1510
+
1511
+ /**
1512
+ * Chain ID containing the atom
1513
+ */
1514
+ chain_id: string;
1515
+
1516
+ type: 'ligand_atom';
1517
+ }
1518
+
1519
+ export interface PolymerAtomResponse {
1520
+ /**
1521
+ * Standardized atom name (verifiable in CIF file on RCSB)
1522
+ */
1523
+ atom_name: string;
1524
+
1525
+ /**
1526
+ * Chain ID containing the atom
1527
+ */
1528
+ chain_id: string;
1529
+
1530
+ /**
1531
+ * 0-based residue index
1532
+ */
1533
+ residue_index: number;
1534
+
1535
+ type: 'polymer_atom';
1536
+ }
1537
+ }
1538
+
1539
+ /**
1540
+ * Constrains the binder to interact with specific pocket residues on the target.
1541
+ */
1542
+ export interface PocketConstraintResponse {
1543
+ /**
1544
+ * Chain ID of the binder molecule
1545
+ */
1546
+ binder_chain_id: string;
1547
+
1548
+ /**
1549
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
1550
+ * the value is an array of 0-indexed residue indices that define the pocket on
1551
+ * that chain.
1552
+ */
1553
+ contact_residues: { [key: string]: Array<number> };
1554
+
1555
+ /**
1556
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
1557
+ * Typical range: 4-8 A.
1558
+ */
1559
+ max_distance_angstrom: number;
1560
+
1561
+ type: 'pocket';
1562
+
1563
+ /**
1564
+ * Whether to force the constraint
1565
+ */
1566
+ force?: boolean;
1567
+ }
1568
+
1569
+ /**
1570
+ * Contact constraint between two tokens. Atom-level ligand references currently
1571
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
1572
+ */
1573
+ export interface ContactConstraintResponse {
1574
+ /**
1575
+ * Maximum distance in Angstroms
1576
+ */
1577
+ max_distance_angstrom: number;
1578
+
1579
+ /**
1580
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1581
+ * entities only; ligand_smiles is unsupported.
1582
+ */
1583
+ token1:
1584
+ | ContactConstraintResponse.PolymerContactTokenResponse
1585
+ | ContactConstraintResponse.LigandContactTokenResponse;
1586
+
1587
+ /**
1588
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1589
+ * entities only; ligand_smiles is unsupported.
1590
+ */
1591
+ token2:
1592
+ | ContactConstraintResponse.PolymerContactTokenResponse
1593
+ | ContactConstraintResponse.LigandContactTokenResponse;
1594
+
1595
+ type: 'contact';
1596
+
1597
+ /**
1598
+ * Whether to force the constraint
1599
+ */
1600
+ force?: boolean;
1601
+ }
1602
+
1603
+ export namespace ContactConstraintResponse {
1604
+ export interface PolymerContactTokenResponse {
1605
+ /**
1606
+ * Chain ID
1607
+ */
1608
+ chain_id: string;
1609
+
1610
+ /**
1611
+ * 0-based residue index
1612
+ */
1613
+ residue_index: number;
1614
+
1615
+ type: 'polymer_contact';
1616
+ }
1617
+
1618
+ /**
1619
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1620
+ * entities only; ligand_smiles is unsupported.
1621
+ */
1622
+ export interface LigandContactTokenResponse {
1623
+ /**
1624
+ * Atom name. Atom-level references to ligand_smiles entities are currently
1625
+ * unsupported; use ligand_ccd instead.
1626
+ */
1627
+ atom_name: string;
1628
+
1629
+ /**
1630
+ * Chain ID
1631
+ */
1632
+ chain_id: string;
1633
+
1634
+ type: 'ligand_contact';
1635
+ }
1636
+
1637
+ export interface PolymerContactTokenResponse {
1638
+ /**
1639
+ * Chain ID
1640
+ */
1641
+ chain_id: string;
1642
+
1643
+ /**
1644
+ * 0-based residue index
1645
+ */
1646
+ residue_index: number;
1647
+
1648
+ type: 'polymer_contact';
1649
+ }
1650
+
1651
+ /**
1652
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
1653
+ * entities only; ligand_smiles is unsupported.
1654
+ */
1655
+ export interface LigandContactTokenResponse {
1656
+ /**
1657
+ * Atom name. Atom-level references to ligand_smiles entities are currently
1658
+ * unsupported; use ligand_ccd instead.
1659
+ */
1660
+ atom_name: string;
1661
+
1662
+ /**
1663
+ * Chain ID
1664
+ */
1665
+ chain_id: string;
1666
+
1667
+ type: 'ligand_contact';
1668
+ }
1669
+ }
1670
+ }
1671
+
1672
+ /**
1673
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
1674
+ * and custom filters.
1675
+ */
1676
+ export interface MoleculeFilters {
1677
+ /**
1678
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
1679
+ * which removes molecules matching known problematic substructures. 'recommended'
1680
+ * (default): applies a curated set of alerts balancing safety and hit rate.
1681
+ * 'extra': adds additional alerts beyond the recommended set for stricter
1682
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
1683
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
1684
+ * custom_filters will be applied.
1685
+ */
1686
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
1687
+
1688
+ /**
1689
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
1690
+ */
1691
+ custom_filters?: Array<
1692
+ | MoleculeFilters.LipinskiFilterResponse
1693
+ | MoleculeFilters.RdkitDescriptorFilterResponse
1694
+ | MoleculeFilters.SmartsCustomFilterResponse
1695
+ | MoleculeFilters.SmartsCatalogFilterResponse
1696
+ | MoleculeFilters.SmilesRegexFilterResponse
1697
+ >;
1698
+ }
1699
+
1700
+ export namespace MoleculeFilters {
1701
+ /**
1702
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
1703
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
1704
+ * bond acceptors.
1705
+ */
1706
+ export interface LipinskiFilterResponse {
1707
+ /**
1708
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
1709
+ */
1710
+ max_hba: number;
1711
+
1712
+ /**
1713
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
1714
+ */
1715
+ max_hbd: number;
1716
+
1717
+ /**
1718
+ * Maximum LogP. Lipinski threshold: 5
1719
+ */
1720
+ max_logp: number;
1721
+
1722
+ /**
1723
+ * Maximum molecular weight (Da). Lipinski threshold: 500
1724
+ */
1725
+ max_mw: number;
1726
+
1727
+ type: 'lipinski_filter';
1728
+
1729
+ /**
1730
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
1731
+ * (all rules must pass).
1732
+ */
1733
+ allow_single_violation?: boolean;
1734
+ }
1735
+
1736
+ /**
1737
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
1738
+ * to a min/max range. Only descriptors you provide are checked — omitted
1739
+ * descriptors are unconstrained.
1740
+ */
1741
+ export interface RdkitDescriptorFilterResponse {
1742
+ type: 'rdkit_descriptor_filter';
1743
+
1744
+ /**
1745
+ * Min/max range constraint for an RDKit molecular descriptor
1746
+ */
1747
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
1748
+
1749
+ /**
1750
+ * Min/max range constraint for an RDKit molecular descriptor
1751
+ */
1752
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
1753
+
1754
+ /**
1755
+ * Min/max range constraint for an RDKit molecular descriptor
1756
+ */
1757
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
1758
+
1759
+ /**
1760
+ * Min/max range constraint for an RDKit molecular descriptor
1761
+ */
1762
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
1763
+
1764
+ /**
1765
+ * Min/max range constraint for an RDKit molecular descriptor
1766
+ */
1767
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
1768
+
1769
+ /**
1770
+ * Min/max range constraint for an RDKit molecular descriptor
1771
+ */
1772
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
1773
+
1774
+ /**
1775
+ * Min/max range constraint for an RDKit molecular descriptor
1776
+ */
1777
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
1778
+
1779
+ /**
1780
+ * Min/max range constraint for an RDKit molecular descriptor
1781
+ */
1782
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
1783
+
1784
+ /**
1785
+ * Min/max range constraint for an RDKit molecular descriptor
1786
+ */
1787
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
1788
+
1789
+ /**
1790
+ * Min/max range constraint for an RDKit molecular descriptor
1791
+ */
1792
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
1793
+ }
1794
+
1795
+ export namespace RdkitDescriptorFilterResponse {
1796
+ /**
1797
+ * Min/max range constraint for an RDKit molecular descriptor
1798
+ */
1799
+ export interface FractionCsp3 {
1800
+ /**
1801
+ * Maximum allowed value (inclusive)
1802
+ */
1803
+ max?: number;
1804
+
1805
+ /**
1806
+ * Minimum allowed value (inclusive)
1807
+ */
1808
+ min?: number;
1809
+ }
1810
+
1811
+ /**
1812
+ * Min/max range constraint for an RDKit molecular descriptor
1813
+ */
1814
+ export interface MolLogp {
1815
+ /**
1816
+ * Maximum allowed value (inclusive)
1817
+ */
1818
+ max?: number;
1819
+
1820
+ /**
1821
+ * Minimum allowed value (inclusive)
1822
+ */
1823
+ min?: number;
1824
+ }
1825
+
1826
+ /**
1827
+ * Min/max range constraint for an RDKit molecular descriptor
1828
+ */
1829
+ export interface MolWt {
1830
+ /**
1831
+ * Maximum allowed value (inclusive)
1832
+ */
1833
+ max?: number;
1834
+
1835
+ /**
1836
+ * Minimum allowed value (inclusive)
1837
+ */
1838
+ min?: number;
1839
+ }
1840
+
1841
+ /**
1842
+ * Min/max range constraint for an RDKit molecular descriptor
1843
+ */
1844
+ export interface NumAromaticRings {
1845
+ /**
1846
+ * Maximum allowed value (inclusive)
1847
+ */
1848
+ max?: number;
1849
+
1850
+ /**
1851
+ * Minimum allowed value (inclusive)
1852
+ */
1853
+ min?: number;
1854
+ }
1855
+
1856
+ /**
1857
+ * Min/max range constraint for an RDKit molecular descriptor
1858
+ */
1859
+ export interface NumHAcceptors {
1860
+ /**
1861
+ * Maximum allowed value (inclusive)
1862
+ */
1863
+ max?: number;
1864
+
1865
+ /**
1866
+ * Minimum allowed value (inclusive)
1867
+ */
1868
+ min?: number;
1869
+ }
1870
+
1871
+ /**
1872
+ * Min/max range constraint for an RDKit molecular descriptor
1873
+ */
1874
+ export interface NumHDonors {
1875
+ /**
1876
+ * Maximum allowed value (inclusive)
1877
+ */
1878
+ max?: number;
1879
+
1880
+ /**
1881
+ * Minimum allowed value (inclusive)
1882
+ */
1883
+ min?: number;
1884
+ }
1885
+
1886
+ /**
1887
+ * Min/max range constraint for an RDKit molecular descriptor
1888
+ */
1889
+ export interface NumHeteroatoms {
1890
+ /**
1891
+ * Maximum allowed value (inclusive)
1892
+ */
1893
+ max?: number;
1894
+
1895
+ /**
1896
+ * Minimum allowed value (inclusive)
1897
+ */
1898
+ min?: number;
1899
+ }
1900
+
1901
+ /**
1902
+ * Min/max range constraint for an RDKit molecular descriptor
1903
+ */
1904
+ export interface NumRings {
1905
+ /**
1906
+ * Maximum allowed value (inclusive)
1907
+ */
1908
+ max?: number;
1909
+
1910
+ /**
1911
+ * Minimum allowed value (inclusive)
1912
+ */
1913
+ min?: number;
1914
+ }
1915
+
1916
+ /**
1917
+ * Min/max range constraint for an RDKit molecular descriptor
1918
+ */
1919
+ export interface NumRotatableBonds {
1920
+ /**
1921
+ * Maximum allowed value (inclusive)
1922
+ */
1923
+ max?: number;
1924
+
1925
+ /**
1926
+ * Minimum allowed value (inclusive)
1927
+ */
1928
+ min?: number;
1929
+ }
1930
+
1931
+ /**
1932
+ * Min/max range constraint for an RDKit molecular descriptor
1933
+ */
1934
+ export interface Tpsa {
1935
+ /**
1936
+ * Maximum allowed value (inclusive)
1937
+ */
1938
+ max?: number;
1939
+
1940
+ /**
1941
+ * Minimum allowed value (inclusive)
1942
+ */
1943
+ min?: number;
1944
+ }
1945
+ }
1946
+
1947
+ /**
1948
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
1949
+ * rejected.
1950
+ */
1951
+ export interface SmartsCustomFilterResponse {
1952
+ /**
1953
+ * SMARTS patterns. Molecules matching any pattern are rejected.
1954
+ */
1955
+ patterns: Array<string>;
1956
+
1957
+ type: 'smarts_custom_filter';
1958
+ }
1959
+
1960
+ /**
1961
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
1962
+ */
1963
+ export interface SmartsCatalogFilterResponse {
1964
+ /**
1965
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
1966
+ * reject known problematic substructures.
1967
+ */
1968
+ catalog:
1969
+ | 'PAINS'
1970
+ | 'PAINS_A'
1971
+ | 'PAINS_B'
1972
+ | 'PAINS_C'
1973
+ | 'BRENK'
1974
+ | 'CHEMBL'
1975
+ | 'CHEMBL_BMS'
1976
+ | 'CHEMBL_Dundee'
1977
+ | 'CHEMBL_Glaxo'
1978
+ | 'CHEMBL_Inpharmatica'
1979
+ | 'CHEMBL_LINT'
1980
+ | 'CHEMBL_MLSMR'
1981
+ | 'CHEMBL_SureChEMBL'
1982
+ | 'NIH';
1983
+
1984
+ type: 'smarts_catalog_filter';
1985
+ }
1986
+
1987
+ /**
1988
+ * Filter molecules by regex patterns on their SMILES representation.
1989
+ */
1990
+ export interface SmilesRegexFilterResponse {
1991
+ /**
1992
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
1993
+ * rejected.
1994
+ */
1995
+ patterns: Array<string>;
1996
+
1997
+ type: 'smiles_regex_filter';
1998
+ }
1999
+ }
2000
+ }
2001
+
2002
+ export interface Progress {
2003
+ /**
2004
+ * Number of molecules generated so far
2005
+ */
2006
+ num_molecules_generated: number;
2007
+
2008
+ /**
2009
+ * Total number of molecules requested
2010
+ */
2011
+ total_molecules_to_generate: number;
2012
+
2013
+ /**
2014
+ * ID of the most recently generated result
2015
+ */
2016
+ latest_result_id?: string;
2017
+ }
2018
+ }
2019
+
2020
+ /**
2021
+ * A small molecule design engine run that generates novel molecules
2022
+ */
2023
+ export interface DesignStopResponse {
2024
+ /**
2025
+ * Unique SmDesignRun identifier
2026
+ */
2027
+ id: string;
2028
+
2029
+ completed_at: string | null;
2030
+
2031
+ created_at: string;
2032
+
2033
+ /**
2034
+ * When the input, output, and result data was permanently deleted. Null if data
2035
+ * has not been deleted.
2036
+ */
2037
+ data_deleted_at: string | null;
2038
+
2039
+ /**
2040
+ * Engine used for small molecule design
2041
+ */
2042
+ engine: 'boltz-sm-design';
2043
+
2044
+ /**
2045
+ * Engine version used for small molecule design
2046
+ */
2047
+ engine_version: string;
2048
+
2049
+ error: DesignStopResponse.Error | null;
2050
+
2051
+ /**
2052
+ * Pipeline input (null if data deleted)
2053
+ */
2054
+ input: DesignStopResponse.Input | null;
2055
+
2056
+ /**
2057
+ * Whether this resource was created with a live API key.
2058
+ */
2059
+ livemode: boolean;
2060
+
2061
+ progress: DesignStopResponse.Progress | null;
2062
+
2063
+ started_at: string | null;
2064
+
2065
+ status: 'pending' | 'running' | 'succeeded' | 'failed' | 'stopped';
2066
+
2067
+ stopped_at: string | null;
2068
+
2069
+ /**
2070
+ * Workspace ID
2071
+ */
2072
+ workspace_id: string;
2073
+
2074
+ /**
2075
+ * Client-provided idempotency key
2076
+ */
2077
+ idempotency_key?: string;
2078
+ }
2079
+
2080
+ export namespace DesignStopResponse {
2081
+ export interface Error {
2082
+ /**
2083
+ * Machine-readable error code
2084
+ */
2085
+ code: string;
2086
+
2087
+ /**
2088
+ * Human-readable error message
2089
+ */
2090
+ message: string;
2091
+
2092
+ /**
2093
+ * Additional field-level error details keyed by input path, when available.
2094
+ */
2095
+ details?: unknown;
2096
+ }
2097
+
2098
+ /**
2099
+ * Pipeline input (null if data deleted)
2100
+ */
2101
+ export interface Input {
2102
+ /**
2103
+ * Number of molecules to generate. Must be between 10 and 1,000,000.
2104
+ */
2105
+ num_molecules: number;
2106
+
2107
+ /**
2108
+ * Target protein with binding pocket for small molecule design or screening
2109
+ */
2110
+ target: Input.Target;
2111
+
2112
+ /**
2113
+ * Chemical space to constrain generated molecules. Currently only 'enamine_real'
2114
+ * (Enamine REAL chemical space) is supported. Additional options may be added in
2115
+ * the future.
2116
+ */
2117
+ chemical_space?: 'enamine_real';
2118
+
2119
+ /**
2120
+ * Client-provided key to prevent duplicate submissions on retries
2121
+ */
2122
+ idempotency_key?: string;
2123
+
2124
+ /**
2125
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2126
+ * and custom filters.
2127
+ */
2128
+ molecule_filters?: Input.MoleculeFilters;
2129
+
2130
+ /**
2131
+ * Target workspace ID (admin keys only; ignored for workspace keys)
2132
+ */
2133
+ workspace_id?: string;
2134
+ }
2135
+
2136
+ export namespace Input {
2137
+ /**
2138
+ * Target protein with binding pocket for small molecule design or screening
2139
+ */
2140
+ export interface Target {
2141
+ /**
2142
+ * Protein entities defining the target structure. Each entity represents a protein
2143
+ * chain.
2144
+ */
2145
+ entities: Array<Target.Entity>;
2146
+
2147
+ /**
2148
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
2149
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
2150
+ */
2151
+ bonds?: Array<Target.Bond>;
2152
+
2153
+ /**
2154
+ * Structural constraints (pocket and contact). Atom-level ligand references
2155
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
2156
+ */
2157
+ constraints?: Array<Target.PocketConstraintResponse | Target.ContactConstraintResponse>;
2158
+
2159
+ /**
2160
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
2161
+ * and the value is an array of 0-indexed residue indices that define the binding
2162
+ * pocket on that chain. When provided, these residues guide pocket extraction and
2163
+ * add a derived pocket constraint during affinity predictions. That derived
2164
+ * constraint remains separate from any explicit pocket constraints in
2165
+ * target.constraints. When omitted, the model auto-detects the pocket.
2166
+ */
2167
+ pocket_residues?: { [key: string]: Array<number> };
2168
+
2169
+ /**
2170
+ * Reference ligands as SMILES strings that help the model identify the binding
2171
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
2172
+ * detection.
2173
+ */
2174
+ reference_ligands?: Array<string>;
2175
+ }
2176
+
2177
+ export namespace Target {
2178
+ export interface Entity {
2179
+ /**
2180
+ * Chain IDs for this entity
2181
+ */
2182
+ chain_ids: Array<string>;
2183
+
2184
+ type: 'protein';
2185
+
2186
+ /**
2187
+ * Amino acid sequence (one-letter codes)
2188
+ */
2189
+ value: string;
2190
+
2191
+ /**
2192
+ * Whether the sequence is cyclic
2193
+ */
2194
+ cyclic?: boolean;
2195
+
2196
+ /**
2197
+ * Post-translational modifications. Optional; defaults to an empty list when
2198
+ * omitted.
2199
+ */
2200
+ modifications?: Array<Entity.CcdModificationResponse | Entity.SmilesModificationResponse>;
2201
+ }
2202
+
2203
+ export namespace Entity {
2204
+ export interface CcdModificationResponse {
2205
+ /**
2206
+ * 0-based index of the residue to modify
2207
+ */
2208
+ residue_index: number;
2209
+
2210
+ type: 'ccd';
2211
+
2212
+ /**
2213
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
2214
+ * phosphoserine)
2215
+ */
2216
+ value: string;
2217
+ }
2218
+
2219
+ export interface SmilesModificationResponse {
2220
+ /**
2221
+ * 0-based index of the residue to modify
2222
+ */
2223
+ residue_index: number;
2224
+
2225
+ type: 'smiles';
2226
+
2227
+ /**
2228
+ * SMILES string for the modification
2229
+ */
2230
+ value: string;
2231
+ }
2232
+ }
2233
+
2234
+ /**
2235
+ * Bond between two atoms. Atom-level ligand references currently support
2236
+ * ligand_ccd entities only; ligand_smiles is unsupported.
2237
+ */
2238
+ export interface Bond {
2239
+ /**
2240
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2241
+ * entities only; ligand_smiles is unsupported.
2242
+ */
2243
+ atom1: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
2244
+
2245
+ /**
2246
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2247
+ * entities only; ligand_smiles is unsupported.
2248
+ */
2249
+ atom2: Bond.LigandAtomResponse | Bond.PolymerAtomResponse;
2250
+ }
2251
+
2252
+ export namespace Bond {
2253
+ /**
2254
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2255
+ * entities only; ligand_smiles is unsupported.
2256
+ */
2257
+ export interface LigandAtomResponse {
2258
+ /**
2259
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
2260
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
2261
+ */
2262
+ atom_name: string;
2263
+
2264
+ /**
2265
+ * Chain ID containing the atom
2266
+ */
2267
+ chain_id: string;
2268
+
2269
+ type: 'ligand_atom';
2270
+ }
2271
+
2272
+ export interface PolymerAtomResponse {
2273
+ /**
2274
+ * Standardized atom name (verifiable in CIF file on RCSB)
2275
+ */
2276
+ atom_name: string;
2277
+
2278
+ /**
2279
+ * Chain ID containing the atom
2280
+ */
2281
+ chain_id: string;
2282
+
2283
+ /**
2284
+ * 0-based residue index
2285
+ */
2286
+ residue_index: number;
2287
+
2288
+ type: 'polymer_atom';
2289
+ }
2290
+
2291
+ /**
2292
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2293
+ * entities only; ligand_smiles is unsupported.
2294
+ */
2295
+ export interface LigandAtomResponse {
2296
+ /**
2297
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
2298
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
2299
+ */
2300
+ atom_name: string;
2301
+
2302
+ /**
2303
+ * Chain ID containing the atom
2304
+ */
2305
+ chain_id: string;
2306
+
2307
+ type: 'ligand_atom';
2308
+ }
2309
+
2310
+ export interface PolymerAtomResponse {
2311
+ /**
2312
+ * Standardized atom name (verifiable in CIF file on RCSB)
2313
+ */
2314
+ atom_name: string;
2315
+
2316
+ /**
2317
+ * Chain ID containing the atom
2318
+ */
2319
+ chain_id: string;
2320
+
2321
+ /**
2322
+ * 0-based residue index
2323
+ */
2324
+ residue_index: number;
2325
+
2326
+ type: 'polymer_atom';
2327
+ }
2328
+ }
2329
+
2330
+ /**
2331
+ * Constrains the binder to interact with specific pocket residues on the target.
2332
+ */
2333
+ export interface PocketConstraintResponse {
2334
+ /**
2335
+ * Chain ID of the binder molecule
2336
+ */
2337
+ binder_chain_id: string;
2338
+
2339
+ /**
2340
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
2341
+ * the value is an array of 0-indexed residue indices that define the pocket on
2342
+ * that chain.
2343
+ */
2344
+ contact_residues: { [key: string]: Array<number> };
2345
+
2346
+ /**
2347
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
2348
+ * Typical range: 4-8 A.
2349
+ */
2350
+ max_distance_angstrom: number;
2351
+
2352
+ type: 'pocket';
2353
+
2354
+ /**
2355
+ * Whether to force the constraint
2356
+ */
2357
+ force?: boolean;
2358
+ }
2359
+
2360
+ /**
2361
+ * Contact constraint between two tokens. Atom-level ligand references currently
2362
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
2363
+ */
2364
+ export interface ContactConstraintResponse {
2365
+ /**
2366
+ * Maximum distance in Angstroms
2367
+ */
2368
+ max_distance_angstrom: number;
2369
+
2370
+ /**
2371
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2372
+ * entities only; ligand_smiles is unsupported.
2373
+ */
2374
+ token1:
2375
+ | ContactConstraintResponse.PolymerContactTokenResponse
2376
+ | ContactConstraintResponse.LigandContactTokenResponse;
2377
+
2378
+ /**
2379
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2380
+ * entities only; ligand_smiles is unsupported.
2381
+ */
2382
+ token2:
2383
+ | ContactConstraintResponse.PolymerContactTokenResponse
2384
+ | ContactConstraintResponse.LigandContactTokenResponse;
2385
+
2386
+ type: 'contact';
2387
+
2388
+ /**
2389
+ * Whether to force the constraint
2390
+ */
2391
+ force?: boolean;
2392
+ }
2393
+
2394
+ export namespace ContactConstraintResponse {
2395
+ export interface PolymerContactTokenResponse {
2396
+ /**
2397
+ * Chain ID
2398
+ */
2399
+ chain_id: string;
2400
+
2401
+ /**
2402
+ * 0-based residue index
2403
+ */
2404
+ residue_index: number;
2405
+
2406
+ type: 'polymer_contact';
2407
+ }
2408
+
2409
+ /**
2410
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2411
+ * entities only; ligand_smiles is unsupported.
2412
+ */
2413
+ export interface LigandContactTokenResponse {
2414
+ /**
2415
+ * Atom name. Atom-level references to ligand_smiles entities are currently
2416
+ * unsupported; use ligand_ccd instead.
2417
+ */
2418
+ atom_name: string;
2419
+
2420
+ /**
2421
+ * Chain ID
2422
+ */
2423
+ chain_id: string;
2424
+
2425
+ type: 'ligand_contact';
2426
+ }
2427
+
2428
+ export interface PolymerContactTokenResponse {
2429
+ /**
2430
+ * Chain ID
2431
+ */
2432
+ chain_id: string;
2433
+
2434
+ /**
2435
+ * 0-based residue index
2436
+ */
2437
+ residue_index: number;
2438
+
2439
+ type: 'polymer_contact';
2440
+ }
2441
+
2442
+ /**
2443
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
2444
+ * entities only; ligand_smiles is unsupported.
2445
+ */
2446
+ export interface LigandContactTokenResponse {
2447
+ /**
2448
+ * Atom name. Atom-level references to ligand_smiles entities are currently
2449
+ * unsupported; use ligand_ccd instead.
2450
+ */
2451
+ atom_name: string;
2452
+
2453
+ /**
2454
+ * Chain ID
2455
+ */
2456
+ chain_id: string;
2457
+
2458
+ type: 'ligand_contact';
2459
+ }
2460
+ }
2461
+ }
2462
+
2463
+ /**
2464
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2465
+ * and custom filters.
2466
+ */
2467
+ export interface MoleculeFilters {
2468
+ /**
2469
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
2470
+ * which removes molecules matching known problematic substructures. 'recommended'
2471
+ * (default): applies a curated set of alerts balancing safety and hit rate.
2472
+ * 'extra': adds additional alerts beyond the recommended set for stricter
2473
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
2474
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
2475
+ * custom_filters will be applied.
2476
+ */
2477
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
2478
+
2479
+ /**
2480
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
2481
+ */
2482
+ custom_filters?: Array<
2483
+ | MoleculeFilters.LipinskiFilterResponse
2484
+ | MoleculeFilters.RdkitDescriptorFilterResponse
2485
+ | MoleculeFilters.SmartsCustomFilterResponse
2486
+ | MoleculeFilters.SmartsCatalogFilterResponse
2487
+ | MoleculeFilters.SmilesRegexFilterResponse
2488
+ >;
2489
+ }
2490
+
2491
+ export namespace MoleculeFilters {
2492
+ /**
2493
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
2494
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
2495
+ * bond acceptors.
2496
+ */
2497
+ export interface LipinskiFilterResponse {
2498
+ /**
2499
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
2500
+ */
2501
+ max_hba: number;
2502
+
2503
+ /**
2504
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
2505
+ */
2506
+ max_hbd: number;
2507
+
2508
+ /**
2509
+ * Maximum LogP. Lipinski threshold: 5
2510
+ */
2511
+ max_logp: number;
2512
+
2513
+ /**
2514
+ * Maximum molecular weight (Da). Lipinski threshold: 500
2515
+ */
2516
+ max_mw: number;
2517
+
2518
+ type: 'lipinski_filter';
2519
+
2520
+ /**
2521
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
2522
+ * (all rules must pass).
2523
+ */
2524
+ allow_single_violation?: boolean;
2525
+ }
2526
+
2527
+ /**
2528
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
2529
+ * to a min/max range. Only descriptors you provide are checked — omitted
2530
+ * descriptors are unconstrained.
2531
+ */
2532
+ export interface RdkitDescriptorFilterResponse {
2533
+ type: 'rdkit_descriptor_filter';
2534
+
2535
+ /**
2536
+ * Min/max range constraint for an RDKit molecular descriptor
2537
+ */
2538
+ fraction_csp3?: RdkitDescriptorFilterResponse.FractionCsp3;
2539
+
2540
+ /**
2541
+ * Min/max range constraint for an RDKit molecular descriptor
2542
+ */
2543
+ mol_logp?: RdkitDescriptorFilterResponse.MolLogp;
2544
+
2545
+ /**
2546
+ * Min/max range constraint for an RDKit molecular descriptor
2547
+ */
2548
+ mol_wt?: RdkitDescriptorFilterResponse.MolWt;
2549
+
2550
+ /**
2551
+ * Min/max range constraint for an RDKit molecular descriptor
2552
+ */
2553
+ num_aromatic_rings?: RdkitDescriptorFilterResponse.NumAromaticRings;
2554
+
2555
+ /**
2556
+ * Min/max range constraint for an RDKit molecular descriptor
2557
+ */
2558
+ num_h_acceptors?: RdkitDescriptorFilterResponse.NumHAcceptors;
2559
+
2560
+ /**
2561
+ * Min/max range constraint for an RDKit molecular descriptor
2562
+ */
2563
+ num_h_donors?: RdkitDescriptorFilterResponse.NumHDonors;
2564
+
2565
+ /**
2566
+ * Min/max range constraint for an RDKit molecular descriptor
2567
+ */
2568
+ num_heteroatoms?: RdkitDescriptorFilterResponse.NumHeteroatoms;
2569
+
2570
+ /**
2571
+ * Min/max range constraint for an RDKit molecular descriptor
2572
+ */
2573
+ num_rings?: RdkitDescriptorFilterResponse.NumRings;
2574
+
2575
+ /**
2576
+ * Min/max range constraint for an RDKit molecular descriptor
2577
+ */
2578
+ num_rotatable_bonds?: RdkitDescriptorFilterResponse.NumRotatableBonds;
2579
+
2580
+ /**
2581
+ * Min/max range constraint for an RDKit molecular descriptor
2582
+ */
2583
+ tpsa?: RdkitDescriptorFilterResponse.Tpsa;
2584
+ }
2585
+
2586
+ export namespace RdkitDescriptorFilterResponse {
2587
+ /**
2588
+ * Min/max range constraint for an RDKit molecular descriptor
2589
+ */
2590
+ export interface FractionCsp3 {
2591
+ /**
2592
+ * Maximum allowed value (inclusive)
2593
+ */
2594
+ max?: number;
2595
+
2596
+ /**
2597
+ * Minimum allowed value (inclusive)
2598
+ */
2599
+ min?: number;
2600
+ }
2601
+
2602
+ /**
2603
+ * Min/max range constraint for an RDKit molecular descriptor
2604
+ */
2605
+ export interface MolLogp {
2606
+ /**
2607
+ * Maximum allowed value (inclusive)
2608
+ */
2609
+ max?: number;
2610
+
2611
+ /**
2612
+ * Minimum allowed value (inclusive)
2613
+ */
2614
+ min?: number;
2615
+ }
2616
+
2617
+ /**
2618
+ * Min/max range constraint for an RDKit molecular descriptor
2619
+ */
2620
+ export interface MolWt {
2621
+ /**
2622
+ * Maximum allowed value (inclusive)
2623
+ */
2624
+ max?: number;
2625
+
2626
+ /**
2627
+ * Minimum allowed value (inclusive)
2628
+ */
2629
+ min?: number;
2630
+ }
2631
+
2632
+ /**
2633
+ * Min/max range constraint for an RDKit molecular descriptor
2634
+ */
2635
+ export interface NumAromaticRings {
2636
+ /**
2637
+ * Maximum allowed value (inclusive)
2638
+ */
2639
+ max?: number;
2640
+
2641
+ /**
2642
+ * Minimum allowed value (inclusive)
2643
+ */
2644
+ min?: number;
2645
+ }
2646
+
2647
+ /**
2648
+ * Min/max range constraint for an RDKit molecular descriptor
2649
+ */
2650
+ export interface NumHAcceptors {
2651
+ /**
2652
+ * Maximum allowed value (inclusive)
2653
+ */
2654
+ max?: number;
2655
+
2656
+ /**
2657
+ * Minimum allowed value (inclusive)
2658
+ */
2659
+ min?: number;
2660
+ }
2661
+
2662
+ /**
2663
+ * Min/max range constraint for an RDKit molecular descriptor
2664
+ */
2665
+ export interface NumHDonors {
2666
+ /**
2667
+ * Maximum allowed value (inclusive)
2668
+ */
2669
+ max?: number;
2670
+
2671
+ /**
2672
+ * Minimum allowed value (inclusive)
2673
+ */
2674
+ min?: number;
2675
+ }
2676
+
2677
+ /**
2678
+ * Min/max range constraint for an RDKit molecular descriptor
2679
+ */
2680
+ export interface NumHeteroatoms {
2681
+ /**
2682
+ * Maximum allowed value (inclusive)
2683
+ */
2684
+ max?: number;
2685
+
2686
+ /**
2687
+ * Minimum allowed value (inclusive)
2688
+ */
2689
+ min?: number;
2690
+ }
2691
+
2692
+ /**
2693
+ * Min/max range constraint for an RDKit molecular descriptor
2694
+ */
2695
+ export interface NumRings {
2696
+ /**
2697
+ * Maximum allowed value (inclusive)
2698
+ */
2699
+ max?: number;
2700
+
2701
+ /**
2702
+ * Minimum allowed value (inclusive)
2703
+ */
2704
+ min?: number;
2705
+ }
2706
+
2707
+ /**
2708
+ * Min/max range constraint for an RDKit molecular descriptor
2709
+ */
2710
+ export interface NumRotatableBonds {
2711
+ /**
2712
+ * Maximum allowed value (inclusive)
2713
+ */
2714
+ max?: number;
2715
+
2716
+ /**
2717
+ * Minimum allowed value (inclusive)
2718
+ */
2719
+ min?: number;
2720
+ }
2721
+
2722
+ /**
2723
+ * Min/max range constraint for an RDKit molecular descriptor
2724
+ */
2725
+ export interface Tpsa {
2726
+ /**
2727
+ * Maximum allowed value (inclusive)
2728
+ */
2729
+ max?: number;
2730
+
2731
+ /**
2732
+ * Minimum allowed value (inclusive)
2733
+ */
2734
+ min?: number;
2735
+ }
2736
+ }
2737
+
2738
+ /**
2739
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
2740
+ * rejected.
2741
+ */
2742
+ export interface SmartsCustomFilterResponse {
2743
+ /**
2744
+ * SMARTS patterns. Molecules matching any pattern are rejected.
2745
+ */
2746
+ patterns: Array<string>;
2747
+
2748
+ type: 'smarts_custom_filter';
2749
+ }
2750
+
2751
+ /**
2752
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
2753
+ */
2754
+ export interface SmartsCatalogFilterResponse {
2755
+ /**
2756
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
2757
+ * reject known problematic substructures.
2758
+ */
2759
+ catalog:
2760
+ | 'PAINS'
2761
+ | 'PAINS_A'
2762
+ | 'PAINS_B'
2763
+ | 'PAINS_C'
2764
+ | 'BRENK'
2765
+ | 'CHEMBL'
2766
+ | 'CHEMBL_BMS'
2767
+ | 'CHEMBL_Dundee'
2768
+ | 'CHEMBL_Glaxo'
2769
+ | 'CHEMBL_Inpharmatica'
2770
+ | 'CHEMBL_LINT'
2771
+ | 'CHEMBL_MLSMR'
2772
+ | 'CHEMBL_SureChEMBL'
2773
+ | 'NIH';
2774
+
2775
+ type: 'smarts_catalog_filter';
2776
+ }
2777
+
2778
+ /**
2779
+ * Filter molecules by regex patterns on their SMILES representation.
2780
+ */
2781
+ export interface SmilesRegexFilterResponse {
2782
+ /**
2783
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
2784
+ * rejected.
2785
+ */
2786
+ patterns: Array<string>;
2787
+
2788
+ type: 'smiles_regex_filter';
2789
+ }
2790
+ }
2791
+ }
2792
+
2793
+ export interface Progress {
2794
+ /**
2795
+ * Number of molecules generated so far
2796
+ */
2797
+ num_molecules_generated: number;
2798
+
2799
+ /**
2800
+ * Total number of molecules requested
2801
+ */
2802
+ total_molecules_to_generate: number;
2803
+
2804
+ /**
2805
+ * ID of the most recently generated result
2806
+ */
2807
+ latest_result_id?: string;
2808
+ }
2809
+ }
2810
+
2811
+ export interface DesignRetrieveParams {
2812
+ /**
2813
+ * Workspace ID. Only used with admin API keys. Ignored (or validated) for
2814
+ * workspace-scoped keys.
2815
+ */
2816
+ workspace_id?: string;
2817
+ }
2818
+
2819
+ export interface DesignListParams extends CursorPageParams {
2820
+ /**
2821
+ * Filter by workspace ID. Only used with admin API keys. If not provided, defaults
2822
+ * to the workspace associated with the API key, or the default workspace for admin
2823
+ * keys.
2824
+ */
2825
+ workspace_id?: string;
2826
+ }
2827
+
2828
+ export interface DesignEstimateCostParams {
2829
+ /**
2830
+ * Number of molecules to generate. Must be between 10 and 1,000,000.
2831
+ */
2832
+ num_molecules: number;
2833
+
2834
+ /**
2835
+ * Target protein with binding pocket for small molecule design or screening
2836
+ */
2837
+ target: DesignEstimateCostParams.Target;
2838
+
2839
+ /**
2840
+ * Chemical space to constrain generated molecules. Currently only 'enamine_real'
2841
+ * (Enamine REAL chemical space) is supported. Additional options may be added in
2842
+ * the future.
2843
+ */
2844
+ chemical_space?: 'enamine_real';
2845
+
2846
+ /**
2847
+ * Client-provided key to prevent duplicate submissions on retries
2848
+ */
2849
+ idempotency_key?: string;
2850
+
2851
+ /**
2852
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
2853
+ * and custom filters.
2854
+ */
2855
+ molecule_filters?: DesignEstimateCostParams.MoleculeFilters;
2856
+
2857
+ /**
2858
+ * Target workspace ID (admin keys only; ignored for workspace keys)
2859
+ */
2860
+ workspace_id?: string;
2861
+ }
2862
+
2863
+ export namespace DesignEstimateCostParams {
2864
+ /**
2865
+ * Target protein with binding pocket for small molecule design or screening
2866
+ */
2867
+ export interface Target {
2868
+ /**
2869
+ * Protein entities defining the target structure. Each entity represents a protein
2870
+ * chain.
2871
+ */
2872
+ entities: Array<Target.Entity>;
2873
+
2874
+ /**
2875
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
2876
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
2877
+ */
2878
+ bonds?: Array<Target.Bond>;
2879
+
2880
+ /**
2881
+ * Structural constraints (pocket and contact). Atom-level ligand references
2882
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
2883
+ */
2884
+ constraints?: Array<Target.PocketConstraint | Target.ContactConstraint>;
2885
+
2886
+ /**
2887
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
2888
+ * and the value is an array of 0-indexed residue indices that define the binding
2889
+ * pocket on that chain. When provided, these residues guide pocket extraction and
2890
+ * add a derived pocket constraint during affinity predictions. That derived
2891
+ * constraint remains separate from any explicit pocket constraints in
2892
+ * target.constraints. When omitted, the model auto-detects the pocket.
2893
+ */
2894
+ pocket_residues?: { [key: string]: Array<number> };
2895
+
2896
+ /**
2897
+ * Reference ligands as SMILES strings that help the model identify the binding
2898
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
2899
+ * detection.
2900
+ */
2901
+ reference_ligands?: Array<string>;
2902
+ }
2903
+
2904
+ export namespace Target {
2905
+ export interface Entity {
2906
+ /**
2907
+ * Chain IDs for this entity
2908
+ */
2909
+ chain_ids: Array<string>;
2910
+
2911
+ type: 'protein';
2912
+
2913
+ /**
2914
+ * Amino acid sequence (one-letter codes)
2915
+ */
2916
+ value: string;
2917
+
2918
+ /**
2919
+ * Whether the sequence is cyclic
2920
+ */
2921
+ cyclic?: boolean;
2922
+
2923
+ /**
2924
+ * Post-translational modifications. Optional; defaults to an empty list when
2925
+ * omitted.
2926
+ */
2927
+ modifications?: Array<Entity.CcdModification | Entity.SmilesModification>;
2928
+ }
2929
+
2930
+ export namespace Entity {
2931
+ export interface CcdModification {
2932
+ /**
2933
+ * 0-based index of the residue to modify
2934
+ */
2935
+ residue_index: number;
2936
+
2937
+ type: 'ccd';
2938
+
2939
+ /**
2940
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
2941
+ * phosphoserine)
2942
+ */
2943
+ value: string;
2944
+ }
2945
+
2946
+ export interface SmilesModification {
2947
+ /**
2948
+ * 0-based index of the residue to modify
2949
+ */
2950
+ residue_index: number;
2951
+
2952
+ type: 'smiles';
2953
+
2954
+ /**
2955
+ * SMILES string for the modification
2956
+ */
2957
+ value: string;
2958
+ }
2959
+ }
2960
+
2961
+ /**
2962
+ * Bond between two atoms. Atom-level ligand references currently support
2963
+ * ligand_ccd entities only; ligand_smiles is unsupported.
2964
+ */
2965
+ export interface Bond {
2966
+ /**
2967
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2968
+ * entities only; ligand_smiles is unsupported.
2969
+ */
2970
+ atom1: Bond.LigandAtom | Bond.PolymerAtom;
2971
+
2972
+ /**
2973
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2974
+ * entities only; ligand_smiles is unsupported.
2975
+ */
2976
+ atom2: Bond.LigandAtom | Bond.PolymerAtom;
2977
+ }
2978
+
2979
+ export namespace Bond {
2980
+ /**
2981
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
2982
+ * entities only; ligand_smiles is unsupported.
2983
+ */
2984
+ export interface LigandAtom {
2985
+ /**
2986
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
2987
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
2988
+ */
2989
+ atom_name: string;
2990
+
2991
+ /**
2992
+ * Chain ID containing the atom
2993
+ */
2994
+ chain_id: string;
2995
+
2996
+ type: 'ligand_atom';
2997
+ }
2998
+
2999
+ export interface PolymerAtom {
3000
+ /**
3001
+ * Standardized atom name (verifiable in CIF file on RCSB)
3002
+ */
3003
+ atom_name: string;
3004
+
3005
+ /**
3006
+ * Chain ID containing the atom
3007
+ */
3008
+ chain_id: string;
3009
+
3010
+ /**
3011
+ * 0-based residue index
3012
+ */
3013
+ residue_index: number;
3014
+
3015
+ type: 'polymer_atom';
3016
+ }
3017
+
3018
+ /**
3019
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3020
+ * entities only; ligand_smiles is unsupported.
3021
+ */
3022
+ export interface LigandAtom {
3023
+ /**
3024
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3025
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3026
+ */
3027
+ atom_name: string;
3028
+
3029
+ /**
3030
+ * Chain ID containing the atom
3031
+ */
3032
+ chain_id: string;
3033
+
3034
+ type: 'ligand_atom';
3035
+ }
3036
+
3037
+ export interface PolymerAtom {
3038
+ /**
3039
+ * Standardized atom name (verifiable in CIF file on RCSB)
3040
+ */
3041
+ atom_name: string;
3042
+
3043
+ /**
3044
+ * Chain ID containing the atom
3045
+ */
3046
+ chain_id: string;
3047
+
3048
+ /**
3049
+ * 0-based residue index
3050
+ */
3051
+ residue_index: number;
3052
+
3053
+ type: 'polymer_atom';
3054
+ }
3055
+ }
3056
+
3057
+ /**
3058
+ * Constrains the binder to interact with specific pocket residues on the target.
3059
+ */
3060
+ export interface PocketConstraint {
3061
+ /**
3062
+ * Chain ID of the binder molecule
3063
+ */
3064
+ binder_chain_id: string;
3065
+
3066
+ /**
3067
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
3068
+ * the value is an array of 0-indexed residue indices that define the pocket on
3069
+ * that chain.
3070
+ */
3071
+ contact_residues: { [key: string]: Array<number> };
3072
+
3073
+ /**
3074
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
3075
+ * Typical range: 4-8 A.
3076
+ */
3077
+ max_distance_angstrom: number;
3078
+
3079
+ type: 'pocket';
3080
+
3081
+ /**
3082
+ * Whether to force the constraint
3083
+ */
3084
+ force?: boolean;
3085
+ }
3086
+
3087
+ /**
3088
+ * Contact constraint between two tokens. Atom-level ligand references currently
3089
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
3090
+ */
3091
+ export interface ContactConstraint {
3092
+ /**
3093
+ * Maximum distance in Angstroms
3094
+ */
3095
+ max_distance_angstrom: number;
3096
+
3097
+ /**
3098
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3099
+ * entities only; ligand_smiles is unsupported.
3100
+ */
3101
+ token1: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3102
+
3103
+ /**
3104
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3105
+ * entities only; ligand_smiles is unsupported.
3106
+ */
3107
+ token2: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3108
+
3109
+ type: 'contact';
3110
+
3111
+ /**
3112
+ * Whether to force the constraint
3113
+ */
3114
+ force?: boolean;
3115
+ }
3116
+
3117
+ export namespace ContactConstraint {
3118
+ export interface PolymerContactToken {
3119
+ /**
3120
+ * Chain ID
3121
+ */
3122
+ chain_id: string;
3123
+
3124
+ /**
3125
+ * 0-based residue index
3126
+ */
3127
+ residue_index: number;
3128
+
3129
+ type: 'polymer_contact';
3130
+ }
3131
+
3132
+ /**
3133
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3134
+ * entities only; ligand_smiles is unsupported.
3135
+ */
3136
+ export interface LigandContactToken {
3137
+ /**
3138
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3139
+ * unsupported; use ligand_ccd instead.
3140
+ */
3141
+ atom_name: string;
3142
+
3143
+ /**
3144
+ * Chain ID
3145
+ */
3146
+ chain_id: string;
3147
+
3148
+ type: 'ligand_contact';
3149
+ }
3150
+
3151
+ export interface PolymerContactToken {
3152
+ /**
3153
+ * Chain ID
3154
+ */
3155
+ chain_id: string;
3156
+
3157
+ /**
3158
+ * 0-based residue index
3159
+ */
3160
+ residue_index: number;
3161
+
3162
+ type: 'polymer_contact';
3163
+ }
3164
+
3165
+ /**
3166
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3167
+ * entities only; ligand_smiles is unsupported.
3168
+ */
3169
+ export interface LigandContactToken {
3170
+ /**
3171
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3172
+ * unsupported; use ligand_ccd instead.
3173
+ */
3174
+ atom_name: string;
3175
+
3176
+ /**
3177
+ * Chain ID
3178
+ */
3179
+ chain_id: string;
3180
+
3181
+ type: 'ligand_contact';
3182
+ }
3183
+ }
3184
+ }
3185
+
3186
+ /**
3187
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3188
+ * and custom filters.
3189
+ */
3190
+ export interface MoleculeFilters {
3191
+ /**
3192
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
3193
+ * which removes molecules matching known problematic substructures. 'recommended'
3194
+ * (default): applies a curated set of alerts balancing safety and hit rate.
3195
+ * 'extra': adds additional alerts beyond the recommended set for stricter
3196
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
3197
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
3198
+ * custom_filters will be applied.
3199
+ */
3200
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
3201
+
3202
+ /**
3203
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
3204
+ */
3205
+ custom_filters?: Array<
3206
+ | MoleculeFilters.LipinskiFilter
3207
+ | MoleculeFilters.RdkitDescriptorFilter
3208
+ | MoleculeFilters.SmartsCustomFilter
3209
+ | MoleculeFilters.SmartsCatalogFilter
3210
+ | MoleculeFilters.SmilesRegexFilter
3211
+ >;
3212
+ }
3213
+
3214
+ export namespace MoleculeFilters {
3215
+ /**
3216
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
3217
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
3218
+ * bond acceptors.
3219
+ */
3220
+ export interface LipinskiFilter {
3221
+ /**
3222
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
3223
+ */
3224
+ max_hba: number;
3225
+
3226
+ /**
3227
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
3228
+ */
3229
+ max_hbd: number;
3230
+
3231
+ /**
3232
+ * Maximum LogP. Lipinski threshold: 5
3233
+ */
3234
+ max_logp: number;
3235
+
3236
+ /**
3237
+ * Maximum molecular weight (Da). Lipinski threshold: 500
3238
+ */
3239
+ max_mw: number;
3240
+
3241
+ type: 'lipinski_filter';
3242
+
3243
+ /**
3244
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
3245
+ * (all rules must pass).
3246
+ */
3247
+ allow_single_violation?: boolean;
3248
+ }
3249
+
3250
+ /**
3251
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
3252
+ * to a min/max range. Only descriptors you provide are checked — omitted
3253
+ * descriptors are unconstrained.
3254
+ */
3255
+ export interface RdkitDescriptorFilter {
3256
+ type: 'rdkit_descriptor_filter';
3257
+
3258
+ /**
3259
+ * Min/max range constraint for an RDKit molecular descriptor
3260
+ */
3261
+ fraction_csp3?: RdkitDescriptorFilter.FractionCsp3;
3262
+
3263
+ /**
3264
+ * Min/max range constraint for an RDKit molecular descriptor
3265
+ */
3266
+ mol_logp?: RdkitDescriptorFilter.MolLogp;
3267
+
3268
+ /**
3269
+ * Min/max range constraint for an RDKit molecular descriptor
3270
+ */
3271
+ mol_wt?: RdkitDescriptorFilter.MolWt;
3272
+
3273
+ /**
3274
+ * Min/max range constraint for an RDKit molecular descriptor
3275
+ */
3276
+ num_aromatic_rings?: RdkitDescriptorFilter.NumAromaticRings;
3277
+
3278
+ /**
3279
+ * Min/max range constraint for an RDKit molecular descriptor
3280
+ */
3281
+ num_h_acceptors?: RdkitDescriptorFilter.NumHAcceptors;
3282
+
3283
+ /**
3284
+ * Min/max range constraint for an RDKit molecular descriptor
3285
+ */
3286
+ num_h_donors?: RdkitDescriptorFilter.NumHDonors;
3287
+
3288
+ /**
3289
+ * Min/max range constraint for an RDKit molecular descriptor
3290
+ */
3291
+ num_heteroatoms?: RdkitDescriptorFilter.NumHeteroatoms;
3292
+
3293
+ /**
3294
+ * Min/max range constraint for an RDKit molecular descriptor
3295
+ */
3296
+ num_rings?: RdkitDescriptorFilter.NumRings;
3297
+
3298
+ /**
3299
+ * Min/max range constraint for an RDKit molecular descriptor
3300
+ */
3301
+ num_rotatable_bonds?: RdkitDescriptorFilter.NumRotatableBonds;
3302
+
3303
+ /**
3304
+ * Min/max range constraint for an RDKit molecular descriptor
3305
+ */
3306
+ tpsa?: RdkitDescriptorFilter.Tpsa;
3307
+ }
3308
+
3309
+ export namespace RdkitDescriptorFilter {
3310
+ /**
3311
+ * Min/max range constraint for an RDKit molecular descriptor
3312
+ */
3313
+ export interface FractionCsp3 {
3314
+ /**
3315
+ * Maximum allowed value (inclusive)
3316
+ */
3317
+ max?: number;
3318
+
3319
+ /**
3320
+ * Minimum allowed value (inclusive)
3321
+ */
3322
+ min?: number;
3323
+ }
3324
+
3325
+ /**
3326
+ * Min/max range constraint for an RDKit molecular descriptor
3327
+ */
3328
+ export interface MolLogp {
3329
+ /**
3330
+ * Maximum allowed value (inclusive)
3331
+ */
3332
+ max?: number;
3333
+
3334
+ /**
3335
+ * Minimum allowed value (inclusive)
3336
+ */
3337
+ min?: number;
3338
+ }
3339
+
3340
+ /**
3341
+ * Min/max range constraint for an RDKit molecular descriptor
3342
+ */
3343
+ export interface MolWt {
3344
+ /**
3345
+ * Maximum allowed value (inclusive)
3346
+ */
3347
+ max?: number;
3348
+
3349
+ /**
3350
+ * Minimum allowed value (inclusive)
3351
+ */
3352
+ min?: number;
3353
+ }
3354
+
3355
+ /**
3356
+ * Min/max range constraint for an RDKit molecular descriptor
3357
+ */
3358
+ export interface NumAromaticRings {
3359
+ /**
3360
+ * Maximum allowed value (inclusive)
3361
+ */
3362
+ max?: number;
3363
+
3364
+ /**
3365
+ * Minimum allowed value (inclusive)
3366
+ */
3367
+ min?: number;
3368
+ }
3369
+
3370
+ /**
3371
+ * Min/max range constraint for an RDKit molecular descriptor
3372
+ */
3373
+ export interface NumHAcceptors {
3374
+ /**
3375
+ * Maximum allowed value (inclusive)
3376
+ */
3377
+ max?: number;
3378
+
3379
+ /**
3380
+ * Minimum allowed value (inclusive)
3381
+ */
3382
+ min?: number;
3383
+ }
3384
+
3385
+ /**
3386
+ * Min/max range constraint for an RDKit molecular descriptor
3387
+ */
3388
+ export interface NumHDonors {
3389
+ /**
3390
+ * Maximum allowed value (inclusive)
3391
+ */
3392
+ max?: number;
3393
+
3394
+ /**
3395
+ * Minimum allowed value (inclusive)
3396
+ */
3397
+ min?: number;
3398
+ }
3399
+
3400
+ /**
3401
+ * Min/max range constraint for an RDKit molecular descriptor
3402
+ */
3403
+ export interface NumHeteroatoms {
3404
+ /**
3405
+ * Maximum allowed value (inclusive)
3406
+ */
3407
+ max?: number;
3408
+
3409
+ /**
3410
+ * Minimum allowed value (inclusive)
3411
+ */
3412
+ min?: number;
3413
+ }
3414
+
3415
+ /**
3416
+ * Min/max range constraint for an RDKit molecular descriptor
3417
+ */
3418
+ export interface NumRings {
3419
+ /**
3420
+ * Maximum allowed value (inclusive)
3421
+ */
3422
+ max?: number;
3423
+
3424
+ /**
3425
+ * Minimum allowed value (inclusive)
3426
+ */
3427
+ min?: number;
3428
+ }
3429
+
3430
+ /**
3431
+ * Min/max range constraint for an RDKit molecular descriptor
3432
+ */
3433
+ export interface NumRotatableBonds {
3434
+ /**
3435
+ * Maximum allowed value (inclusive)
3436
+ */
3437
+ max?: number;
3438
+
3439
+ /**
3440
+ * Minimum allowed value (inclusive)
3441
+ */
3442
+ min?: number;
3443
+ }
3444
+
3445
+ /**
3446
+ * Min/max range constraint for an RDKit molecular descriptor
3447
+ */
3448
+ export interface Tpsa {
3449
+ /**
3450
+ * Maximum allowed value (inclusive)
3451
+ */
3452
+ max?: number;
3453
+
3454
+ /**
3455
+ * Minimum allowed value (inclusive)
3456
+ */
3457
+ min?: number;
3458
+ }
3459
+ }
3460
+
3461
+ /**
3462
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
3463
+ * rejected.
3464
+ */
3465
+ export interface SmartsCustomFilter {
3466
+ /**
3467
+ * SMARTS patterns. Molecules matching any pattern are rejected.
3468
+ */
3469
+ patterns: Array<string>;
3470
+
3471
+ type: 'smarts_custom_filter';
3472
+ }
3473
+
3474
+ /**
3475
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
3476
+ */
3477
+ export interface SmartsCatalogFilter {
3478
+ /**
3479
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
3480
+ * reject known problematic substructures.
3481
+ */
3482
+ catalog:
3483
+ | 'PAINS'
3484
+ | 'PAINS_A'
3485
+ | 'PAINS_B'
3486
+ | 'PAINS_C'
3487
+ | 'BRENK'
3488
+ | 'CHEMBL'
3489
+ | 'CHEMBL_BMS'
3490
+ | 'CHEMBL_Dundee'
3491
+ | 'CHEMBL_Glaxo'
3492
+ | 'CHEMBL_Inpharmatica'
3493
+ | 'CHEMBL_LINT'
3494
+ | 'CHEMBL_MLSMR'
3495
+ | 'CHEMBL_SureChEMBL'
3496
+ | 'NIH';
3497
+
3498
+ type: 'smarts_catalog_filter';
3499
+ }
3500
+
3501
+ /**
3502
+ * Filter molecules by regex patterns on their SMILES representation.
3503
+ */
3504
+ export interface SmilesRegexFilter {
3505
+ /**
3506
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
3507
+ * rejected.
3508
+ */
3509
+ patterns: Array<string>;
3510
+
3511
+ type: 'smiles_regex_filter';
3512
+ }
3513
+ }
3514
+ }
3515
+
3516
+ export interface DesignListResultsParams extends CursorPageParams {
3517
+ /**
3518
+ * Workspace ID. Only used with admin API keys. Ignored (or validated) for
3519
+ * workspace-scoped keys.
3520
+ */
3521
+ workspace_id?: string;
3522
+ }
3523
+
3524
+ export interface DesignStartParams {
3525
+ /**
3526
+ * Number of molecules to generate. Must be between 10 and 1,000,000.
3527
+ */
3528
+ num_molecules: number;
3529
+
3530
+ /**
3531
+ * Target protein with binding pocket for small molecule design or screening
3532
+ */
3533
+ target: DesignStartParams.Target;
3534
+
3535
+ /**
3536
+ * Chemical space to constrain generated molecules. Currently only 'enamine_real'
3537
+ * (Enamine REAL chemical space) is supported. Additional options may be added in
3538
+ * the future.
3539
+ */
3540
+ chemical_space?: 'enamine_real';
3541
+
3542
+ /**
3543
+ * Client-provided key to prevent duplicate submissions on retries
3544
+ */
3545
+ idempotency_key?: string;
3546
+
3547
+ /**
3548
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3549
+ * and custom filters.
3550
+ */
3551
+ molecule_filters?: DesignStartParams.MoleculeFilters;
3552
+
3553
+ /**
3554
+ * Target workspace ID (admin keys only; ignored for workspace keys)
3555
+ */
3556
+ workspace_id?: string;
3557
+ }
3558
+
3559
+ export namespace DesignStartParams {
3560
+ /**
3561
+ * Target protein with binding pocket for small molecule design or screening
3562
+ */
3563
+ export interface Target {
3564
+ /**
3565
+ * Protein entities defining the target structure. Each entity represents a protein
3566
+ * chain.
3567
+ */
3568
+ entities: Array<Target.Entity>;
3569
+
3570
+ /**
3571
+ * Covalent bond constraints between atoms in the target complex. Atom-level ligand
3572
+ * references currently support ligand_ccd only; ligand_smiles is unsupported.
3573
+ */
3574
+ bonds?: Array<Target.Bond>;
3575
+
3576
+ /**
3577
+ * Structural constraints (pocket and contact). Atom-level ligand references
3578
+ * currently support ligand_ccd only; ligand_smiles is unsupported.
3579
+ */
3580
+ constraints?: Array<Target.PocketConstraint | Target.ContactConstraint>;
3581
+
3582
+ /**
3583
+ * Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A")
3584
+ * and the value is an array of 0-indexed residue indices that define the binding
3585
+ * pocket on that chain. When provided, these residues guide pocket extraction and
3586
+ * add a derived pocket constraint during affinity predictions. That derived
3587
+ * constraint remains separate from any explicit pocket constraints in
3588
+ * target.constraints. When omitted, the model auto-detects the pocket.
3589
+ */
3590
+ pocket_residues?: { [key: string]: Array<number> };
3591
+
3592
+ /**
3593
+ * Reference ligands as SMILES strings that help the model identify the binding
3594
+ * pocket. When omitted, a set of drug-like default ligands is used for pocket
3595
+ * detection.
3596
+ */
3597
+ reference_ligands?: Array<string>;
3598
+ }
3599
+
3600
+ export namespace Target {
3601
+ export interface Entity {
3602
+ /**
3603
+ * Chain IDs for this entity
3604
+ */
3605
+ chain_ids: Array<string>;
3606
+
3607
+ type: 'protein';
3608
+
3609
+ /**
3610
+ * Amino acid sequence (one-letter codes)
3611
+ */
3612
+ value: string;
3613
+
3614
+ /**
3615
+ * Whether the sequence is cyclic
3616
+ */
3617
+ cyclic?: boolean;
3618
+
3619
+ /**
3620
+ * Post-translational modifications. Optional; defaults to an empty list when
3621
+ * omitted.
3622
+ */
3623
+ modifications?: Array<Entity.CcdModification | Entity.SmilesModification>;
3624
+ }
3625
+
3626
+ export namespace Entity {
3627
+ export interface CcdModification {
3628
+ /**
3629
+ * 0-based index of the residue to modify
3630
+ */
3631
+ residue_index: number;
3632
+
3633
+ type: 'ccd';
3634
+
3635
+ /**
3636
+ * CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for
3637
+ * phosphoserine)
3638
+ */
3639
+ value: string;
3640
+ }
3641
+
3642
+ export interface SmilesModification {
3643
+ /**
3644
+ * 0-based index of the residue to modify
3645
+ */
3646
+ residue_index: number;
3647
+
3648
+ type: 'smiles';
3649
+
3650
+ /**
3651
+ * SMILES string for the modification
3652
+ */
3653
+ value: string;
3654
+ }
3655
+ }
3656
+
3657
+ /**
3658
+ * Bond between two atoms. Atom-level ligand references currently support
3659
+ * ligand_ccd entities only; ligand_smiles is unsupported.
3660
+ */
3661
+ export interface Bond {
3662
+ /**
3663
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3664
+ * entities only; ligand_smiles is unsupported.
3665
+ */
3666
+ atom1: Bond.LigandAtom | Bond.PolymerAtom;
3667
+
3668
+ /**
3669
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3670
+ * entities only; ligand_smiles is unsupported.
3671
+ */
3672
+ atom2: Bond.LigandAtom | Bond.PolymerAtom;
3673
+ }
3674
+
3675
+ export namespace Bond {
3676
+ /**
3677
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3678
+ * entities only; ligand_smiles is unsupported.
3679
+ */
3680
+ export interface LigandAtom {
3681
+ /**
3682
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3683
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3684
+ */
3685
+ atom_name: string;
3686
+
3687
+ /**
3688
+ * Chain ID containing the atom
3689
+ */
3690
+ chain_id: string;
3691
+
3692
+ type: 'ligand_atom';
3693
+ }
3694
+
3695
+ export interface PolymerAtom {
3696
+ /**
3697
+ * Standardized atom name (verifiable in CIF file on RCSB)
3698
+ */
3699
+ atom_name: string;
3700
+
3701
+ /**
3702
+ * Chain ID containing the atom
3703
+ */
3704
+ chain_id: string;
3705
+
3706
+ /**
3707
+ * 0-based residue index
3708
+ */
3709
+ residue_index: number;
3710
+
3711
+ type: 'polymer_atom';
3712
+ }
3713
+
3714
+ /**
3715
+ * Ligand atom reference. Atom-level ligand references currently support ligand_ccd
3716
+ * entities only; ligand_smiles is unsupported.
3717
+ */
3718
+ export interface LigandAtom {
3719
+ /**
3720
+ * Standardized atom name (verifiable in CIF file on RCSB). Atom-level references
3721
+ * to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
3722
+ */
3723
+ atom_name: string;
3724
+
3725
+ /**
3726
+ * Chain ID containing the atom
3727
+ */
3728
+ chain_id: string;
3729
+
3730
+ type: 'ligand_atom';
3731
+ }
3732
+
3733
+ export interface PolymerAtom {
3734
+ /**
3735
+ * Standardized atom name (verifiable in CIF file on RCSB)
3736
+ */
3737
+ atom_name: string;
3738
+
3739
+ /**
3740
+ * Chain ID containing the atom
3741
+ */
3742
+ chain_id: string;
3743
+
3744
+ /**
3745
+ * 0-based residue index
3746
+ */
3747
+ residue_index: number;
3748
+
3749
+ type: 'polymer_atom';
3750
+ }
3751
+ }
3752
+
3753
+ /**
3754
+ * Constrains the binder to interact with specific pocket residues on the target.
3755
+ */
3756
+ export interface PocketConstraint {
3757
+ /**
3758
+ * Chain ID of the binder molecule
3759
+ */
3760
+ binder_chain_id: string;
3761
+
3762
+ /**
3763
+ * Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and
3764
+ * the value is an array of 0-indexed residue indices that define the pocket on
3765
+ * that chain.
3766
+ */
3767
+ contact_residues: { [key: string]: Array<number> };
3768
+
3769
+ /**
3770
+ * Maximum allowed distance in Angstroms between binder and pocket residues.
3771
+ * Typical range: 4-8 A.
3772
+ */
3773
+ max_distance_angstrom: number;
3774
+
3775
+ type: 'pocket';
3776
+
3777
+ /**
3778
+ * Whether to force the constraint
3779
+ */
3780
+ force?: boolean;
3781
+ }
3782
+
3783
+ /**
3784
+ * Contact constraint between two tokens. Atom-level ligand references currently
3785
+ * support ligand_ccd entities only; ligand_smiles is unsupported.
3786
+ */
3787
+ export interface ContactConstraint {
3788
+ /**
3789
+ * Maximum distance in Angstroms
3790
+ */
3791
+ max_distance_angstrom: number;
3792
+
3793
+ /**
3794
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3795
+ * entities only; ligand_smiles is unsupported.
3796
+ */
3797
+ token1: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3798
+
3799
+ /**
3800
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3801
+ * entities only; ligand_smiles is unsupported.
3802
+ */
3803
+ token2: ContactConstraint.PolymerContactToken | ContactConstraint.LigandContactToken;
3804
+
3805
+ type: 'contact';
3806
+
3807
+ /**
3808
+ * Whether to force the constraint
3809
+ */
3810
+ force?: boolean;
3811
+ }
3812
+
3813
+ export namespace ContactConstraint {
3814
+ export interface PolymerContactToken {
3815
+ /**
3816
+ * Chain ID
3817
+ */
3818
+ chain_id: string;
3819
+
3820
+ /**
3821
+ * 0-based residue index
3822
+ */
3823
+ residue_index: number;
3824
+
3825
+ type: 'polymer_contact';
3826
+ }
3827
+
3828
+ /**
3829
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3830
+ * entities only; ligand_smiles is unsupported.
3831
+ */
3832
+ export interface LigandContactToken {
3833
+ /**
3834
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3835
+ * unsupported; use ligand_ccd instead.
3836
+ */
3837
+ atom_name: string;
3838
+
3839
+ /**
3840
+ * Chain ID
3841
+ */
3842
+ chain_id: string;
3843
+
3844
+ type: 'ligand_contact';
3845
+ }
3846
+
3847
+ export interface PolymerContactToken {
3848
+ /**
3849
+ * Chain ID
3850
+ */
3851
+ chain_id: string;
3852
+
3853
+ /**
3854
+ * 0-based residue index
3855
+ */
3856
+ residue_index: number;
3857
+
3858
+ type: 'polymer_contact';
3859
+ }
3860
+
3861
+ /**
3862
+ * Ligand contact token. Atom-level ligand references currently support ligand_ccd
3863
+ * entities only; ligand_smiles is unsupported.
3864
+ */
3865
+ export interface LigandContactToken {
3866
+ /**
3867
+ * Atom name. Atom-level references to ligand_smiles entities are currently
3868
+ * unsupported; use ligand_ccd instead.
3869
+ */
3870
+ atom_name: string;
3871
+
3872
+ /**
3873
+ * Chain ID
3874
+ */
3875
+ chain_id: string;
3876
+
3877
+ type: 'ligand_contact';
3878
+ }
3879
+ }
3880
+ }
3881
+
3882
+ /**
3883
+ * Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering
3884
+ * and custom filters.
3885
+ */
3886
+ export interface MoleculeFilters {
3887
+ /**
3888
+ * Controls the stringency of Boltz's built-in SMARTS structural alert filtering,
3889
+ * which removes molecules matching known problematic substructures. 'recommended'
3890
+ * (default): applies a curated set of alerts balancing safety and hit rate.
3891
+ * 'extra': adds additional alerts beyond the recommended set for stricter
3892
+ * filtering. 'aggressive': applies the most comprehensive alert set — may reject
3893
+ * viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only
3894
+ * custom_filters will be applied.
3895
+ */
3896
+ boltz_smarts_catalog_filter_level?: 'recommended' | 'extra' | 'aggressive' | 'disabled';
3897
+
3898
+ /**
3899
+ * Custom filters to apply. Molecules must pass all filters (AND logic).
3900
+ */
3901
+ custom_filters?: Array<
3902
+ | MoleculeFilters.LipinskiFilter
3903
+ | MoleculeFilters.RdkitDescriptorFilter
3904
+ | MoleculeFilters.SmartsCustomFilter
3905
+ | MoleculeFilters.SmartsCatalogFilter
3906
+ | MoleculeFilters.SmilesRegexFilter
3907
+ >;
3908
+ }
3909
+
3910
+ export namespace MoleculeFilters {
3911
+ /**
3912
+ * Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness
3913
+ * criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen
3914
+ * bond acceptors.
3915
+ */
3916
+ export interface LipinskiFilter {
3917
+ /**
3918
+ * Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
3919
+ */
3920
+ max_hba: number;
3921
+
3922
+ /**
3923
+ * Maximum number of hydrogen bond donors. Lipinski threshold: 5
3924
+ */
3925
+ max_hbd: number;
3926
+
3927
+ /**
3928
+ * Maximum LogP. Lipinski threshold: 5
3929
+ */
3930
+ max_logp: number;
3931
+
3932
+ /**
3933
+ * Maximum molecular weight (Da). Lipinski threshold: 500
3934
+ */
3935
+ max_mw: number;
3936
+
3937
+ type: 'lipinski_filter';
3938
+
3939
+ /**
3940
+ * If true, one rule violation is allowed (classic Rule of Five). Defaults to false
3941
+ * (all rules must pass).
3942
+ */
3943
+ allow_single_violation?: boolean;
3944
+ }
3945
+
3946
+ /**
3947
+ * Filter molecules by RDKit molecular descriptors. Each descriptor is constrained
3948
+ * to a min/max range. Only descriptors you provide are checked — omitted
3949
+ * descriptors are unconstrained.
3950
+ */
3951
+ export interface RdkitDescriptorFilter {
3952
+ type: 'rdkit_descriptor_filter';
3953
+
3954
+ /**
3955
+ * Min/max range constraint for an RDKit molecular descriptor
3956
+ */
3957
+ fraction_csp3?: RdkitDescriptorFilter.FractionCsp3;
3958
+
3959
+ /**
3960
+ * Min/max range constraint for an RDKit molecular descriptor
3961
+ */
3962
+ mol_logp?: RdkitDescriptorFilter.MolLogp;
3963
+
3964
+ /**
3965
+ * Min/max range constraint for an RDKit molecular descriptor
3966
+ */
3967
+ mol_wt?: RdkitDescriptorFilter.MolWt;
3968
+
3969
+ /**
3970
+ * Min/max range constraint for an RDKit molecular descriptor
3971
+ */
3972
+ num_aromatic_rings?: RdkitDescriptorFilter.NumAromaticRings;
3973
+
3974
+ /**
3975
+ * Min/max range constraint for an RDKit molecular descriptor
3976
+ */
3977
+ num_h_acceptors?: RdkitDescriptorFilter.NumHAcceptors;
3978
+
3979
+ /**
3980
+ * Min/max range constraint for an RDKit molecular descriptor
3981
+ */
3982
+ num_h_donors?: RdkitDescriptorFilter.NumHDonors;
3983
+
3984
+ /**
3985
+ * Min/max range constraint for an RDKit molecular descriptor
3986
+ */
3987
+ num_heteroatoms?: RdkitDescriptorFilter.NumHeteroatoms;
3988
+
3989
+ /**
3990
+ * Min/max range constraint for an RDKit molecular descriptor
3991
+ */
3992
+ num_rings?: RdkitDescriptorFilter.NumRings;
3993
+
3994
+ /**
3995
+ * Min/max range constraint for an RDKit molecular descriptor
3996
+ */
3997
+ num_rotatable_bonds?: RdkitDescriptorFilter.NumRotatableBonds;
3998
+
3999
+ /**
4000
+ * Min/max range constraint for an RDKit molecular descriptor
4001
+ */
4002
+ tpsa?: RdkitDescriptorFilter.Tpsa;
4003
+ }
4004
+
4005
+ export namespace RdkitDescriptorFilter {
4006
+ /**
4007
+ * Min/max range constraint for an RDKit molecular descriptor
4008
+ */
4009
+ export interface FractionCsp3 {
4010
+ /**
4011
+ * Maximum allowed value (inclusive)
4012
+ */
4013
+ max?: number;
4014
+
4015
+ /**
4016
+ * Minimum allowed value (inclusive)
4017
+ */
4018
+ min?: number;
4019
+ }
4020
+
4021
+ /**
4022
+ * Min/max range constraint for an RDKit molecular descriptor
4023
+ */
4024
+ export interface MolLogp {
4025
+ /**
4026
+ * Maximum allowed value (inclusive)
4027
+ */
4028
+ max?: number;
4029
+
4030
+ /**
4031
+ * Minimum allowed value (inclusive)
4032
+ */
4033
+ min?: number;
4034
+ }
4035
+
4036
+ /**
4037
+ * Min/max range constraint for an RDKit molecular descriptor
4038
+ */
4039
+ export interface MolWt {
4040
+ /**
4041
+ * Maximum allowed value (inclusive)
4042
+ */
4043
+ max?: number;
4044
+
4045
+ /**
4046
+ * Minimum allowed value (inclusive)
4047
+ */
4048
+ min?: number;
4049
+ }
4050
+
4051
+ /**
4052
+ * Min/max range constraint for an RDKit molecular descriptor
4053
+ */
4054
+ export interface NumAromaticRings {
4055
+ /**
4056
+ * Maximum allowed value (inclusive)
4057
+ */
4058
+ max?: number;
4059
+
4060
+ /**
4061
+ * Minimum allowed value (inclusive)
4062
+ */
4063
+ min?: number;
4064
+ }
4065
+
4066
+ /**
4067
+ * Min/max range constraint for an RDKit molecular descriptor
4068
+ */
4069
+ export interface NumHAcceptors {
4070
+ /**
4071
+ * Maximum allowed value (inclusive)
4072
+ */
4073
+ max?: number;
4074
+
4075
+ /**
4076
+ * Minimum allowed value (inclusive)
4077
+ */
4078
+ min?: number;
4079
+ }
4080
+
4081
+ /**
4082
+ * Min/max range constraint for an RDKit molecular descriptor
4083
+ */
4084
+ export interface NumHDonors {
4085
+ /**
4086
+ * Maximum allowed value (inclusive)
4087
+ */
4088
+ max?: number;
4089
+
4090
+ /**
4091
+ * Minimum allowed value (inclusive)
4092
+ */
4093
+ min?: number;
4094
+ }
4095
+
4096
+ /**
4097
+ * Min/max range constraint for an RDKit molecular descriptor
4098
+ */
4099
+ export interface NumHeteroatoms {
4100
+ /**
4101
+ * Maximum allowed value (inclusive)
4102
+ */
4103
+ max?: number;
4104
+
4105
+ /**
4106
+ * Minimum allowed value (inclusive)
4107
+ */
4108
+ min?: number;
4109
+ }
4110
+
4111
+ /**
4112
+ * Min/max range constraint for an RDKit molecular descriptor
4113
+ */
4114
+ export interface NumRings {
4115
+ /**
4116
+ * Maximum allowed value (inclusive)
4117
+ */
4118
+ max?: number;
4119
+
4120
+ /**
4121
+ * Minimum allowed value (inclusive)
4122
+ */
4123
+ min?: number;
4124
+ }
4125
+
4126
+ /**
4127
+ * Min/max range constraint for an RDKit molecular descriptor
4128
+ */
4129
+ export interface NumRotatableBonds {
4130
+ /**
4131
+ * Maximum allowed value (inclusive)
4132
+ */
4133
+ max?: number;
4134
+
4135
+ /**
4136
+ * Minimum allowed value (inclusive)
4137
+ */
4138
+ min?: number;
4139
+ }
4140
+
4141
+ /**
4142
+ * Min/max range constraint for an RDKit molecular descriptor
4143
+ */
4144
+ export interface Tpsa {
4145
+ /**
4146
+ * Maximum allowed value (inclusive)
4147
+ */
4148
+ max?: number;
4149
+
4150
+ /**
4151
+ * Minimum allowed value (inclusive)
4152
+ */
4153
+ min?: number;
4154
+ }
4155
+ }
4156
+
4157
+ /**
4158
+ * Filter molecules by custom SMARTS patterns. Molecules matching any pattern are
4159
+ * rejected.
4160
+ */
4161
+ export interface SmartsCustomFilter {
4162
+ /**
4163
+ * SMARTS patterns. Molecules matching any pattern are rejected.
4164
+ */
4165
+ patterns: Array<string>;
4166
+
4167
+ type: 'smarts_custom_filter';
4168
+ }
4169
+
4170
+ /**
4171
+ * Filter molecules using a predefined SMARTS catalog of structural alerts.
4172
+ */
4173
+ export interface SmartsCatalogFilter {
4174
+ /**
4175
+ * Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs
4176
+ * reject known problematic substructures.
4177
+ */
4178
+ catalog:
4179
+ | 'PAINS'
4180
+ | 'PAINS_A'
4181
+ | 'PAINS_B'
4182
+ | 'PAINS_C'
4183
+ | 'BRENK'
4184
+ | 'CHEMBL'
4185
+ | 'CHEMBL_BMS'
4186
+ | 'CHEMBL_Dundee'
4187
+ | 'CHEMBL_Glaxo'
4188
+ | 'CHEMBL_Inpharmatica'
4189
+ | 'CHEMBL_LINT'
4190
+ | 'CHEMBL_MLSMR'
4191
+ | 'CHEMBL_SureChEMBL'
4192
+ | 'NIH';
4193
+
4194
+ type: 'smarts_catalog_filter';
4195
+ }
4196
+
4197
+ /**
4198
+ * Filter molecules by regex patterns on their SMILES representation.
4199
+ */
4200
+ export interface SmilesRegexFilter {
4201
+ /**
4202
+ * Regex patterns applied to SMILES strings. Molecules matching any pattern are
4203
+ * rejected.
4204
+ */
4205
+ patterns: Array<string>;
4206
+
4207
+ type: 'smiles_regex_filter';
4208
+ }
4209
+ }
4210
+ }
4211
+
4212
+ export declare namespace Design {
4213
+ export {
4214
+ type DesignRetrieveResponse as DesignRetrieveResponse,
4215
+ type DesignListResponse as DesignListResponse,
4216
+ type DesignDeleteDataResponse as DesignDeleteDataResponse,
4217
+ type DesignEstimateCostResponse as DesignEstimateCostResponse,
4218
+ type DesignListResultsResponse as DesignListResultsResponse,
4219
+ type DesignStartResponse as DesignStartResponse,
4220
+ type DesignStopResponse as DesignStopResponse,
4221
+ type DesignListResponsesCursorPage as DesignListResponsesCursorPage,
4222
+ type DesignListResultsResponsesCursorPage as DesignListResultsResponsesCursorPage,
4223
+ type DesignRetrieveParams as DesignRetrieveParams,
4224
+ type DesignListParams as DesignListParams,
4225
+ type DesignEstimateCostParams as DesignEstimateCostParams,
4226
+ type DesignListResultsParams as DesignListResultsParams,
4227
+ type DesignStartParams as DesignStartParams,
4228
+ };
4229
+ }