@greatwait/contracts 0.1.0-alpha.3 → 0.1.0-alpha.5

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 (345) hide show
  1. package/README.md +12 -10
  2. package/dist/authority.d.ts +33 -27
  3. package/dist/authority.js +12 -2
  4. package/dist/billing.d.ts +1231 -0
  5. package/dist/billing.js +833 -0
  6. package/dist/callback-safety.d.ts +2 -2
  7. package/dist/callback-safety.js +15 -5
  8. package/dist/compatibility.d.ts +3 -3
  9. package/dist/compatibility.js +1 -1
  10. package/dist/configuration-bounds.d.ts +13 -0
  11. package/dist/configuration-bounds.js +13 -0
  12. package/dist/data-export.d.ts +67 -0
  13. package/dist/data-export.js +182 -0
  14. package/dist/effective-limits.d.ts +40 -0
  15. package/dist/effective-limits.js +42 -0
  16. package/dist/endpoints.d.ts +186 -245
  17. package/dist/endpoints.js +82 -86
  18. package/dist/events.d.ts +17 -17
  19. package/dist/events.js +1 -1
  20. package/dist/first-value-journey.d.ts +50 -56
  21. package/dist/first-value-journey.js +17 -20
  22. package/dist/forecast.d.ts +182 -92
  23. package/dist/forecast.js +88 -25
  24. package/dist/identifiers.d.ts +20 -20
  25. package/dist/identifiers.js +1 -1
  26. package/dist/identity.d.ts +41 -37
  27. package/dist/identity.js +5 -4
  28. package/dist/index.d.ts +12 -6
  29. package/dist/index.js +12 -6
  30. package/dist/mcp.d.ts +21 -19
  31. package/dist/mcp.js +2 -2
  32. package/dist/naming.d.ts +45 -0
  33. package/dist/naming.js +159 -0
  34. package/dist/oauth.d.ts +186 -172
  35. package/dist/oauth.js +1 -1
  36. package/dist/operation-definitions.d.ts +9 -0
  37. package/dist/operation-definitions.js +7 -0
  38. package/dist/operational-config.d.ts +101 -0
  39. package/dist/operational-config.js +341 -0
  40. package/dist/operations.d.ts +4742 -2170
  41. package/dist/operations.js +3064 -932
  42. package/dist/organization-lifecycle.d.ts +34 -0
  43. package/dist/organization-lifecycle.js +122 -0
  44. package/dist/partition.d.ts +43 -9
  45. package/dist/partition.js +3 -3
  46. package/dist/policy.d.ts +4 -4
  47. package/dist/policy.js +9 -5
  48. package/dist/problems.d.ts +57 -28
  49. package/dist/problems.js +55 -3
  50. package/dist/protocol.d.ts +209 -80
  51. package/dist/protocol.js +110 -37
  52. package/dist/scheduling-records.d.ts +349 -285
  53. package/dist/scheduling-records.js +1 -1
  54. package/dist/scheduling.d.ts +707 -361
  55. package/dist/scheduling.js +443 -61
  56. package/dist/secrets.d.ts +119 -105
  57. package/dist/secrets.js +1 -1
  58. package/dist/signatures.d.ts +74 -74
  59. package/dist/signatures.js +1 -1
  60. package/dist/tenancy.d.ts +142 -68
  61. package/dist/tenancy.js +70 -17
  62. package/dist/test-sink.d.ts +127 -127
  63. package/dist/test-sink.js +1 -1
  64. package/dist/time.d.ts +4 -4
  65. package/dist/time.js +1 -1
  66. package/dist/timing.d.ts +65 -0
  67. package/dist/timing.js +82 -0
  68. package/dist/usage.d.ts +103 -47
  69. package/dist/usage.js +183 -32
  70. package/dist/workspace.d.ts +34 -34
  71. package/dist/workspace.js +1 -1
  72. package/dist/zod-values.d.ts +3 -0
  73. package/dist/zod-values.js +2 -0
  74. package/dist/zod.d.ts +2 -0
  75. package/dist/zod.js +2 -0
  76. package/generated/v1/examples/attempts.list.response.json +6 -0
  77. package/generated/v1/examples/attempts.read.response.json +6 -0
  78. package/generated/v1/examples/billing.autotopup.request.json +5 -0
  79. package/generated/v1/examples/billing.autotopup.response.json +120 -0
  80. package/generated/v1/examples/billing.autotopuppreview.request.json +19 -0
  81. package/generated/v1/examples/billing.autotopuppreview.response.json +45 -0
  82. package/generated/v1/examples/billing.budgets.request.json +13 -0
  83. package/generated/v1/examples/billing.budgets.response.json +22 -0
  84. package/generated/v1/examples/billing.ceiling.request.json +8 -0
  85. package/generated/v1/examples/billing.ceiling.response.json +120 -0
  86. package/generated/v1/examples/billing.change.request.json +5 -0
  87. package/generated/v1/examples/billing.change.response.json +12 -0
  88. package/generated/v1/examples/billing.funding.response.json +120 -0
  89. package/generated/v1/examples/billing.fundingconfirm.response.json +120 -0
  90. package/generated/v1/examples/billing.fundingquote.request.json +7 -0
  91. package/generated/v1/examples/billing.fundingquote.response.json +13 -0
  92. package/generated/v1/examples/billing.invoicehistory.response.json +6 -0
  93. package/generated/v1/examples/billing.invoices.response.json +15 -0
  94. package/generated/v1/examples/billing.ledger.response.json +23 -0
  95. package/generated/v1/examples/billing.notices.response.json +41 -0
  96. package/generated/v1/examples/billing.notificationsettings.response.json +17 -0
  97. package/generated/v1/examples/billing.notificationsettingsupdate.request.json +9 -0
  98. package/generated/v1/examples/billing.notificationsettingsupdate.response.json +17 -0
  99. package/generated/v1/examples/billing.paymenthistory.response.json +6 -0
  100. package/generated/v1/examples/billing.paymentmethod.response.json +16 -0
  101. package/generated/v1/examples/billing.paymentmethodconfirm.request.json +3 -0
  102. package/generated/v1/examples/billing.paymentmethodconfirm.response.json +16 -0
  103. package/generated/v1/examples/billing.paymentmethodremove.request.json +3 -0
  104. package/generated/v1/examples/billing.paymentmethodremove.response.json +4 -0
  105. package/generated/v1/examples/billing.paymentmethodsetup.request.json +1 -0
  106. package/generated/v1/examples/billing.paymentmethodsetup.response.json +3 -0
  107. package/generated/v1/examples/billing.portal.response.json +3 -0
  108. package/generated/v1/examples/billing.projects.response.json +12 -0
  109. package/generated/v1/examples/billing.purchase.request.json +5 -0
  110. package/generated/v1/examples/billing.purchase.response.json +120 -0
  111. package/generated/v1/examples/billing.quote.request.json +4 -0
  112. package/generated/v1/examples/billing.quote.response.json +19 -0
  113. package/generated/v1/examples/billing.reconcile.response.json +73 -0
  114. package/generated/v1/examples/billing.refundrequest.request.json +10 -0
  115. package/generated/v1/examples/billing.refundrequest.response.json +11 -0
  116. package/generated/v1/examples/billing.refundresolution.request.json +4 -0
  117. package/generated/v1/examples/billing.refundresolution.response.json +120 -0
  118. package/generated/v1/examples/billing.summary.response.json +73 -0
  119. package/generated/v1/examples/endpoints.acknowledgeSigningKeyRotation.response.json +18 -0
  120. package/generated/v1/examples/endpoints.create.response.json +1 -1
  121. package/generated/v1/examples/endpoints.disable.response.json +0 -1
  122. package/generated/v1/examples/{endpoints.verify.response.json → endpoints.enable.response.json} +4 -5
  123. package/generated/v1/examples/endpoints.list.response.json +1 -2
  124. package/generated/v1/examples/endpoints.read.response.json +2 -2
  125. package/generated/v1/examples/endpoints.revealSigningSecret.response.json +7 -0
  126. package/generated/v1/examples/endpoints.rotateSigningKey.response.json +1 -2
  127. package/generated/v1/examples/endpoints.update.response.json +1 -1
  128. package/generated/v1/examples/executions.list.response.json +20 -0
  129. package/generated/v1/examples/exports.cancel.response.json +11 -0
  130. package/generated/v1/examples/exports.create.request.json +1 -0
  131. package/generated/v1/examples/exports.create.response.json +8 -0
  132. package/generated/v1/examples/exports.part.response.json +5 -0
  133. package/generated/v1/examples/exports.read.response.json +8 -0
  134. package/generated/v1/examples/limits.read.response.json +16 -0
  135. package/generated/v1/examples/occurrences.read.response.json +4 -0
  136. package/generated/v1/examples/occurrences.redeliver.response.json +2 -0
  137. package/generated/v1/examples/organizations.close.request.json +5 -0
  138. package/generated/v1/examples/organizations.close.response.json +10 -0
  139. package/generated/v1/examples/organizations.lifecycle.response.json +10 -0
  140. package/generated/v1/examples/organizations.restore.request.json +3 -0
  141. package/generated/v1/examples/organizations.restore.response.json +10 -0
  142. package/generated/v1/examples/projects.archive.request.json +3 -0
  143. package/generated/v1/examples/projects.archive.response.json +14 -0
  144. package/generated/v1/examples/projects.create.response.json +10 -1
  145. package/generated/v1/examples/projects.delete.response.json +9 -0
  146. package/generated/v1/examples/projects.list.response.json +12 -2
  147. package/generated/v1/examples/projects.rename.request.json +3 -0
  148. package/generated/v1/examples/projects.rename.response.json +14 -0
  149. package/generated/v1/examples/schedules.archive.response.json +3 -0
  150. package/generated/v1/examples/schedules.cancel.response.json +3 -0
  151. package/generated/v1/examples/schedules.create.request.json +4 -0
  152. package/generated/v1/examples/schedules.create.response.json +3 -0
  153. package/generated/v1/examples/schedules.list.response.json +3 -0
  154. package/generated/v1/examples/schedules.pause.response.json +3 -0
  155. package/generated/v1/examples/schedules.read.response.json +6 -0
  156. package/generated/v1/examples/schedules.replace.request.json +4 -0
  157. package/generated/v1/examples/schedules.replace.response.json +3 -0
  158. package/generated/v1/examples/schedules.resume.response.json +3 -0
  159. package/generated/v1/examples/timing.summary.response.json +35 -0
  160. package/generated/v1/examples/usage.read.response.json +1 -0
  161. package/generated/v1/first-value-journey.json +43 -18
  162. package/generated/v1/manifest.json +1287 -42
  163. package/generated/v1/openapi.json +36033 -5982
  164. package/generated/v1/policy-matrix.json +341 -47
  165. package/generated/v1/schemas/attempts.list.response.json +39 -1
  166. package/generated/v1/schemas/attempts.read.response.json +39 -1
  167. package/generated/v1/schemas/billing.autotopup.request-headers.json +13 -0
  168. package/generated/v1/schemas/billing.autotopup.request.json +22 -0
  169. package/generated/v1/schemas/billing.autotopup.response-headers.json +10 -0
  170. package/generated/v1/schemas/billing.autotopup.response.json +552 -0
  171. package/generated/v1/schemas/billing.autotopuppreview.request.json +77 -0
  172. package/generated/v1/schemas/billing.autotopuppreview.response.json +277 -0
  173. package/generated/v1/schemas/billing.budgets.request-headers.json +13 -0
  174. package/generated/v1/schemas/billing.budgets.request.json +66 -0
  175. package/generated/v1/schemas/billing.budgets.response-headers.json +10 -0
  176. package/generated/v1/schemas/billing.budgets.response.json +92 -0
  177. package/generated/v1/schemas/billing.ceiling.request-headers.json +13 -0
  178. package/generated/v1/schemas/billing.ceiling.request.json +40 -0
  179. package/generated/v1/schemas/billing.ceiling.response-headers.json +10 -0
  180. package/generated/v1/schemas/billing.ceiling.response.json +552 -0
  181. package/generated/v1/schemas/billing.change.request-headers.json +13 -0
  182. package/generated/v1/schemas/billing.change.request.json +22 -0
  183. package/generated/v1/schemas/billing.change.response.json +119 -0
  184. package/generated/v1/schemas/billing.funding.response.json +552 -0
  185. package/generated/v1/schemas/billing.fundingconfirm.response.json +552 -0
  186. package/generated/v1/schemas/billing.fundingquote.request.json +28 -0
  187. package/generated/v1/schemas/billing.fundingquote.response.json +61 -0
  188. package/generated/v1/schemas/billing.invoicehistory.query.json +16 -0
  189. package/generated/v1/schemas/billing.invoicehistory.response.json +88 -0
  190. package/generated/v1/schemas/billing.invoices.response.json +51 -0
  191. package/generated/v1/schemas/billing.ledger.query.json +16 -0
  192. package/generated/v1/schemas/billing.ledger.response.json +130 -0
  193. package/generated/v1/schemas/billing.notices.query.json +16 -0
  194. package/generated/v1/schemas/billing.notices.response.json +278 -0
  195. package/generated/v1/schemas/billing.notificationsettings.response.json +70 -0
  196. package/generated/v1/schemas/billing.notificationsettingsupdate.request-headers.json +13 -0
  197. package/generated/v1/schemas/billing.notificationsettingsupdate.request.json +43 -0
  198. package/generated/v1/schemas/billing.notificationsettingsupdate.response-headers.json +10 -0
  199. package/generated/v1/schemas/billing.notificationsettingsupdate.response.json +70 -0
  200. package/generated/v1/schemas/billing.paymenthistory.query.json +16 -0
  201. package/generated/v1/schemas/billing.paymenthistory.response.json +182 -0
  202. package/generated/v1/schemas/billing.paymentmethod.response.json +137 -0
  203. package/generated/v1/schemas/billing.paymentmethodconfirm.request.json +14 -0
  204. package/generated/v1/schemas/billing.paymentmethodconfirm.response.json +137 -0
  205. package/generated/v1/schemas/billing.paymentmethodremove.request.json +12 -0
  206. package/generated/v1/schemas/billing.paymentmethodremove.response.json +137 -0
  207. package/generated/v1/schemas/billing.paymentmethodsetup.request.json +12 -0
  208. package/generated/v1/schemas/billing.paymentmethodsetup.response.json +11 -0
  209. package/generated/v1/schemas/billing.portal.response.json +11 -0
  210. package/generated/v1/schemas/billing.projects.response.json +119 -0
  211. package/generated/v1/schemas/billing.purchase.request-headers.json +13 -0
  212. package/generated/v1/schemas/billing.purchase.request.json +26 -0
  213. package/generated/v1/schemas/billing.purchase.response-headers.json +10 -0
  214. package/generated/v1/schemas/billing.purchase.response.json +552 -0
  215. package/generated/v1/schemas/billing.quote.request.json +20 -0
  216. package/generated/v1/schemas/billing.quote.response.json +86 -0
  217. package/generated/v1/schemas/billing.reconcile.response.json +468 -0
  218. package/generated/v1/schemas/billing.refundrequest.request-headers.json +13 -0
  219. package/generated/v1/schemas/billing.refundrequest.request.json +42 -0
  220. package/generated/v1/schemas/billing.refundrequest.response-headers.json +10 -0
  221. package/generated/v1/schemas/billing.refundrequest.response.json +45 -0
  222. package/generated/v1/schemas/billing.refundresolution.request-headers.json +13 -0
  223. package/generated/v1/schemas/billing.refundresolution.request.json +61 -0
  224. package/generated/v1/schemas/billing.refundresolution.response-headers.json +10 -0
  225. package/generated/v1/schemas/billing.refundresolution.response.json +552 -0
  226. package/generated/v1/schemas/billing.summary.response.json +468 -0
  227. package/generated/v1/schemas/context.read.response.json +2 -0
  228. package/generated/v1/schemas/credentials.connection.response.json +2 -0
  229. package/generated/v1/schemas/credentials.create.request.json +2 -0
  230. package/generated/v1/schemas/credentials.create.response.json +2 -0
  231. package/generated/v1/schemas/credentials.list.response.json +2 -0
  232. package/generated/v1/schemas/credentials.revoke.response.json +2 -0
  233. package/generated/v1/schemas/credentials.rotate.response.json +4 -0
  234. package/generated/v1/schemas/{endpoints.verify.request-headers.json → endpoints.acknowledgeSigningKeyRotation.request-headers.json} +2 -1
  235. package/generated/v1/schemas/{endpoints.verify.response.json → endpoints.acknowledgeSigningKeyRotation.response.json} +8 -21
  236. package/generated/v1/schemas/endpoints.create.request.json +5 -0
  237. package/generated/v1/schemas/endpoints.create.response.json +8 -21
  238. package/generated/v1/schemas/endpoints.disable.response.json +8 -21
  239. package/generated/v1/schemas/endpoints.enable.response-headers.json +11 -0
  240. package/generated/v1/schemas/endpoints.enable.response.json +87 -0
  241. package/generated/v1/schemas/endpoints.list.response.json +8 -21
  242. package/generated/v1/schemas/endpoints.read.response.json +8 -21
  243. package/generated/v1/schemas/endpoints.revealSigningSecret.response.json +43 -0
  244. package/generated/v1/schemas/endpoints.rotateSigningKey.response.json +8 -21
  245. package/generated/v1/schemas/endpoints.update.request.json +5 -0
  246. package/generated/v1/schemas/endpoints.update.response.json +8 -21
  247. package/generated/v1/schemas/executions.list.query.json +46 -0
  248. package/generated/v1/schemas/executions.list.response.json +116 -0
  249. package/generated/v1/schemas/exports.cancel.response.json +48 -0
  250. package/generated/v1/schemas/exports.create.request.json +6 -0
  251. package/generated/v1/schemas/exports.create.response.json +38 -0
  252. package/generated/v1/schemas/exports.part.query.json +11 -0
  253. package/generated/v1/schemas/exports.part.response.json +22 -0
  254. package/generated/v1/schemas/exports.read.response.json +38 -0
  255. package/generated/v1/schemas/forecast.read.request-headers.json +10 -0
  256. package/generated/v1/schemas/forecast.read.response.json +148 -0
  257. package/generated/v1/schemas/grants.list.response.json +2 -0
  258. package/generated/v1/schemas/grants.revoke.response.json +2 -0
  259. package/generated/v1/schemas/limits.read.response.json +79 -0
  260. package/generated/v1/schemas/occurrences.list.query.json +5 -0
  261. package/generated/v1/schemas/occurrences.list.response.json +23 -0
  262. package/generated/v1/schemas/occurrences.read.response.json +23 -0
  263. package/generated/v1/schemas/occurrences.redeliver.response.json +39 -1
  264. package/generated/v1/schemas/organizations.close.request.json +20 -0
  265. package/generated/v1/schemas/organizations.close.response.json +68 -0
  266. package/generated/v1/schemas/organizations.lifecycle.response.json +68 -0
  267. package/generated/v1/schemas/organizations.restore.request.json +13 -0
  268. package/generated/v1/schemas/organizations.restore.response.json +68 -0
  269. package/generated/v1/schemas/projects.archive.request-headers.json +11 -0
  270. package/generated/v1/schemas/projects.archive.request.json +10 -0
  271. package/generated/v1/schemas/projects.archive.response-headers.json +11 -0
  272. package/generated/v1/schemas/projects.archive.response.json +79 -0
  273. package/generated/v1/schemas/projects.create.response.json +55 -1
  274. package/generated/v1/schemas/projects.delete.request-headers.json +11 -0
  275. package/generated/v1/schemas/projects.delete.response.json +37 -0
  276. package/generated/v1/schemas/projects.list.response.json +61 -2
  277. package/generated/v1/schemas/projects.rename.request-headers.json +11 -0
  278. package/generated/v1/schemas/projects.rename.request.json +12 -0
  279. package/generated/v1/schemas/projects.rename.response-headers.json +11 -0
  280. package/generated/v1/schemas/projects.rename.response.json +79 -0
  281. package/generated/v1/schemas/schedules.archive.response.json +90 -2
  282. package/generated/v1/schemas/schedules.cancel.response.json +90 -2
  283. package/generated/v1/schemas/schedules.create.request.json +24 -3
  284. package/generated/v1/schemas/schedules.create.response.json +90 -2
  285. package/generated/v1/schemas/schedules.list.query.json +13 -0
  286. package/generated/v1/schemas/schedules.list.response.json +67 -2
  287. package/generated/v1/schemas/schedules.pause.response.json +90 -2
  288. package/generated/v1/schemas/schedules.read.response.json +90 -2
  289. package/generated/v1/schemas/schedules.replace.request.json +24 -3
  290. package/generated/v1/schemas/schedules.replace.response.json +90 -2
  291. package/generated/v1/schemas/schedules.resume.response.json +90 -2
  292. package/generated/v1/schemas/timing.summary.response.json +191 -0
  293. package/generated/v1/schemas/usage.read.query.json +7 -0
  294. package/generated/v1/schemas/usage.read.response.json +36 -1
  295. package/generated/v1/snippets/billing.autotopup.json +6 -0
  296. package/generated/v1/snippets/billing.autotopuppreview.json +6 -0
  297. package/generated/v1/snippets/billing.budgets.json +6 -0
  298. package/generated/v1/snippets/billing.ceiling.json +6 -0
  299. package/generated/v1/snippets/billing.change.json +6 -0
  300. package/generated/v1/snippets/billing.funding.json +6 -0
  301. package/generated/v1/snippets/billing.fundingconfirm.json +6 -0
  302. package/generated/v1/snippets/billing.fundingquote.json +6 -0
  303. package/generated/v1/snippets/billing.invoicehistory.json +6 -0
  304. package/generated/v1/snippets/billing.invoices.json +6 -0
  305. package/generated/v1/snippets/billing.ledger.json +6 -0
  306. package/generated/v1/snippets/billing.notices.json +6 -0
  307. package/generated/v1/snippets/billing.notificationsettings.json +6 -0
  308. package/generated/v1/snippets/billing.notificationsettingsupdate.json +6 -0
  309. package/generated/v1/snippets/billing.paymenthistory.json +6 -0
  310. package/generated/v1/snippets/billing.paymentmethod.json +6 -0
  311. package/generated/v1/snippets/billing.paymentmethodconfirm.json +6 -0
  312. package/generated/v1/snippets/billing.paymentmethodremove.json +6 -0
  313. package/generated/v1/snippets/billing.paymentmethodsetup.json +6 -0
  314. package/generated/v1/snippets/billing.portal.json +6 -0
  315. package/generated/v1/snippets/billing.projects.json +6 -0
  316. package/generated/v1/snippets/billing.purchase.json +6 -0
  317. package/generated/v1/snippets/billing.quote.json +6 -0
  318. package/generated/v1/snippets/billing.reconcile.json +6 -0
  319. package/generated/v1/snippets/billing.refundrequest.json +6 -0
  320. package/generated/v1/snippets/billing.refundresolution.json +6 -0
  321. package/generated/v1/snippets/billing.summary.json +6 -0
  322. package/generated/v1/snippets/endpoints.acknowledgeSigningKeyRotation.json +6 -0
  323. package/generated/v1/snippets/{endpoints.verify.json → endpoints.enable.json} +3 -3
  324. package/generated/v1/snippets/endpoints.revealSigningSecret.json +6 -0
  325. package/generated/v1/snippets/executions.list.json +6 -0
  326. package/generated/v1/snippets/exports.cancel.json +6 -0
  327. package/generated/v1/snippets/exports.create.json +6 -0
  328. package/generated/v1/snippets/exports.part.json +6 -0
  329. package/generated/v1/snippets/exports.read.json +6 -0
  330. package/generated/v1/snippets/forecast.windows.json +1 -1
  331. package/generated/v1/snippets/limits.read.json +6 -0
  332. package/generated/v1/snippets/organizations.close.json +6 -0
  333. package/generated/v1/snippets/organizations.lifecycle.json +6 -0
  334. package/generated/v1/snippets/organizations.restore.json +6 -0
  335. package/generated/v1/snippets/projects.archive.json +6 -0
  336. package/generated/v1/snippets/projects.delete.json +6 -0
  337. package/generated/v1/snippets/projects.rename.json +6 -0
  338. package/generated/v1/snippets/schedules.create.json +3 -3
  339. package/generated/v1/snippets/schedules.replace.json +3 -3
  340. package/generated/v1/snippets/timing.summary.json +6 -0
  341. package/package.json +7 -7
  342. package/dist/callback-ownership.d.ts +0 -58
  343. package/dist/callback-ownership.js +0 -71
  344. package/generated/v1/callback-endpoint-verification.json +0 -59
  345. /package/generated/v1/schemas/{endpoints.verify.response-headers.json → endpoints.acknowledgeSigningKeyRotation.response-headers.json} +0 -0
@@ -1,4 +1,6 @@
1
- import { z } from "zod";
1
+ import { z } from "./zod.js";
2
+ import { type CursorBinding } from "./protocol.js";
3
+ import type { FieldError } from "./problems.js";
2
4
  import { type CallbackTrigger, type ResponseClass } from "./signatures.js";
3
5
  /**
4
6
  * The scheduling resource family: schedules, the occurrences they produce, and
@@ -33,13 +35,40 @@ import { type CallbackTrigger, type ResponseClass } from "./signatures.js";
33
35
  * question.
34
36
  */
35
37
  export declare const SCHEDULE_STATUSES: readonly ["active", "paused", "cancelled", "completed"];
36
- export declare const scheduleStatusSchema: z.ZodEnum<{
37
- paused: "paused";
38
+ export declare const scheduleStatusSchema: import("zod").ZodEnum<{
38
39
  active: "active";
39
- cancelled: "cancelled";
40
40
  completed: "completed";
41
+ paused: "paused";
42
+ cancelled: "cancelled";
41
43
  }>;
42
44
  export type ScheduleStatus = z.infer<typeof scheduleStatusSchema>;
45
+ /**
46
+ * The statuses a schedule never leaves, and from which it never fires again on
47
+ * its own.
48
+ *
49
+ * **"Never fires again on its own" rather than "never delivers again", and the
50
+ * distinction is real.** A member can still press Redeliver on a completed
51
+ * occurrence, and the repository admits that for a `completed` schedule as well
52
+ * as an `active` one. What is terminal here is the schedule's own timetable, not
53
+ * every possible future delivery.
54
+ *
55
+ * Exported for the same reason as {@link TERMINAL_OCCURRENCE_STATES}: so a
56
+ * caller enumerates them rather than writing the list out and quietly missing
57
+ * one if another is ever added. Three places had already written it out — the
58
+ * `archivedAt` validator in `scheduling-records.ts`, the dashboard's schedule
59
+ * controls, and the dashboard's pending-action rules — and the third had missed
60
+ * it entirely, which is the defect this list was extracted for.
61
+ */
62
+ export declare const TERMINAL_SCHEDULE_STATUSES: readonly ["cancelled", "completed"];
63
+ /**
64
+ * Whether this schedule has finished, either on its own or because somebody
65
+ * stopped it.
66
+ *
67
+ * `paused` is deliberately not terminal: it is reversible, so a paused schedule
68
+ * pointed at a broken destination is still a problem worth telling somebody
69
+ * about.
70
+ */
71
+ export declare function isTerminalScheduleStatus(status: ScheduleStatus): boolean;
43
72
  /**
44
73
  * How promptly an occurrence expects to be dispatched.
45
74
  *
@@ -48,29 +77,95 @@ export type ScheduleStatus = z.infer<typeof scheduleStatusSchema>;
48
77
  * anything to anybody. `realtime` gets preference without starving `bulk`.
49
78
  */
50
79
  export declare const LATENCY_CLASSES: readonly ["realtime", "bulk"];
51
- export declare const latencyClassSchema: z.ZodEnum<{
80
+ export declare const latencyClassSchema: import("zod").ZodEnum<{
52
81
  realtime: "realtime";
53
82
  bulk: "bulk";
54
83
  }>;
55
84
  export type LatencyClass = z.infer<typeof latencyClassSchema>;
56
85
  /**
57
- * How long a receiver may take to answer, as a ladder rather than a number.
58
- *
59
- * **A ladder because every rung is a different product.** The first two are the
60
- * ordinary path: a delivery is carried inside the partition's own dispatch and
61
- * holds one of six in-flight slots for its whole duration, so the cost of a slow
62
- * receiver is paid by every other schedule in that
63
- * `(organization, project, environment)`. The rungs above are carried elsewhere
64
- * and priced, because that is the only honest way to sell them.
65
- *
66
- * **Deliberately not a free-form integer.** A caller that could ask for 47
67
- * seconds would be asking a question this product has no answer to: 47 is past
68
- * the point where a delivery may occupy a partition slot and short of the point
69
- * where it is worth carrying separately. The ladder is what makes "which side of
70
- * the line is this" a decision somebody took rather than a comparison somebody
71
- * wrote.
86
+ * What happens when an occurrence reaches its first attempt after its planned
87
+ * instant.
88
+ *
89
+ * `skipAhead` never carries a recurring first arrival across its next planned
90
+ * instant (and a shorter custom window may retire it earlier). `catchUp`
91
+ * admits one first arrival while it is still inside the schedule's staleness
92
+ * window, even after later recurrence instants passed. A one-shot has no next
93
+ * recurrence, so either explicit policy uses its staleness window and its
94
+ * default is `catchUp`. Neither choice applies to an occurrence already on its
95
+ * retry ladder: that work arrived, failed, and keeps the retry/give-up policy
96
+ * it started under.
97
+ */
98
+ export declare const LATENESS_POLICIES: readonly ["skipAhead", "catchUp"];
99
+ export declare const latenessPolicySchema: import("zod").ZodEnum<{
100
+ skipAhead: "skipAhead";
101
+ catchUp: "catchUp";
102
+ }>;
103
+ export type LatenessPolicy = z.infer<typeof latenessPolicySchema>;
104
+ /** The inherited one-shot staleness window: twenty-four hours. */
105
+ export declare const DEFAULT_ONE_SHOT_MAX_STALENESS_SECONDS = 86400;
106
+ /**
107
+ * The per-schedule lateness choices a caller may state.
108
+ *
109
+ * Both members are optional so a caller can override only the part whose
110
+ * default does not fit. The policy defaults from recurrence kind. An omitted
111
+ * staleness bound uses the recurrence's own default: twenty-four hours for a
112
+ * one-shot, and one recurrence interval for a recurring schedule.
113
+ */
114
+ export declare const scheduleLatenessRequestSchema: import("zod").ZodObject<{
115
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
116
+ policy: import("zod").ZodOptional<import("zod").ZodEnum<{
117
+ skipAhead: "skipAhead";
118
+ catchUp: "catchUp";
119
+ }>>;
120
+ }, import("zod/v4/core").$strict>;
121
+ export type ScheduleLatenessRequest = z.infer<typeof scheduleLatenessRequestSchema>;
122
+ /**
123
+ * Lateness settings as a schedule reads back.
124
+ *
125
+ * The policy is always effective and therefore required. The numeric member
126
+ * remains optional because it records a per-schedule override, not a duplicated
127
+ * copy of a default that can be derived from the recurrence.
128
+ */
129
+ export declare const scheduleLatenessSchema: import("zod").ZodObject<{
130
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
131
+ policy: import("zod").ZodEnum<{
132
+ skipAhead: "skipAhead";
133
+ catchUp: "catchUp";
134
+ }>;
135
+ }, import("zod/v4/core").$strict>;
136
+ export type LatenessSettings = z.infer<typeof scheduleLatenessSchema>;
137
+ /**
138
+ * The durations this product used to sell, one rung at a time.
139
+ *
140
+ * **Kept, and no longer the whole of what is accepted** (FXO-2258). The ladder
141
+ * was the argument that 47 seconds is a question with no answer — past the
142
+ * point where a delivery may occupy a partition slot, short of the point where
143
+ * it is worth carrying separately. The operator overruled it after the walk:
144
+ * "This can have a completely user definable timeout, they don't cost us hardly
145
+ * anything, but we should cap at something anyway, 24h is still fine."
146
+ *
147
+ * What the rungs were actually carrying survives without them. The line that
148
+ * matters commercially is {@link FREE_DELIVERY_DURATION_SECONDS} — above thirty
149
+ * seconds a delivery is carried outside the partition and needs a plan that
150
+ * allows it — and that line is a comparison, not a membership test. The line
151
+ * that matters technically is {@link RESPONSE_DELIVERY_MAX_DURATION_SECONDS},
152
+ * which is also a comparison. Neither ever needed eight fixed values to be
153
+ * expressible; the ladder was how they were *sold*, and per-rung pricing is
154
+ * what the operator withdrew.
155
+ *
156
+ * The list stays because a schedule saved on a rung must keep working, because
157
+ * the delivery-class rules are still exercised against exactly these values,
158
+ * and because the dashboard offers them as the shortcuts most people want.
72
159
  */
73
160
  export declare const DELIVERY_DURATION_TIERS: readonly [5, 30, 300, 900, 1800, 3600, 43200, 86400];
161
+ /**
162
+ * The longest duration any delivery may be given, in seconds.
163
+ *
164
+ * Twenty-four hours, which is the ladder's own top rung — so widening the field
165
+ * to a free-form integer admits nothing that was not already for sale. "24h is
166
+ * still fine."
167
+ */
168
+ export declare const MAX_DELIVERY_DURATION_SECONDS = 86400;
74
169
  /**
75
170
  * What a schedule gets without asking, in seconds.
76
171
  *
@@ -127,7 +222,22 @@ export declare const FREE_DELIVERY_DURATION_SECONDS = 30;
127
222
  * than thirty minutes has to do is answer immediately and call us back.
128
223
  */
129
224
  export declare const RESPONSE_DELIVERY_MAX_DURATION_SECONDS = 1800;
130
- export declare const deliveryDurationSecondsSchema: z.ZodLiteral<300 | 5 | 30 | 900 | 1800 | 3600 | 43200 | 86400>;
225
+ /**
226
+ * How long the receiver may take to answer, in whole seconds.
227
+ *
228
+ * **A bounded integer since FXO-2258, and every value the enum accepted is
229
+ * still accepted.** A widening is the one shape of contract change that cannot
230
+ * break a caller: a request that was valid before is valid now, and a stored
231
+ * schedule reads back and re-saves unchanged.
232
+ *
233
+ * The two bounds that are real are still enforced, and neither of them was ever
234
+ * the enum's doing: `maxDurationSeconds` above
235
+ * {@link RESPONSE_DELIVERY_MAX_DURATION_SECONDS} is refused unless `completion`
236
+ * is `callback` (checked in `scheduleRequestSchema`'s refinement, because it is
237
+ * a relation between two fields), and above
238
+ * {@link FREE_DELIVERY_DURATION_SECONDS} it needs a plan that allows it.
239
+ */
240
+ export declare const deliveryDurationSecondsSchema: import("zod").ZodNumber;
131
241
  export type DeliveryDurationSeconds = z.infer<typeof deliveryDurationSecondsSchema>;
132
242
  /** Whether a duration is past the point where it needs a plan that allows it. */
133
243
  export declare function isLongRunningDuration(seconds: number): boolean;
@@ -156,7 +266,7 @@ export declare function isLongRunningDuration(seconds: number): boolean;
156
266
  * untouched, and so is what a rung costs.
157
267
  */
158
268
  export declare const DELIVERY_COMPLETION_MODES: readonly ["response", "callback"];
159
- export declare const deliveryCompletionModeSchema: z.ZodEnum<{
269
+ export declare const deliveryCompletionModeSchema: import("zod").ZodEnum<{
160
270
  response: "response";
161
271
  callback: "callback";
162
272
  }>;
@@ -182,7 +292,7 @@ export type DeliveryCompletionMode = z.infer<typeof deliveryCompletionModeSchema
182
292
  * - `queue` — run it when the previous one finishes.
183
293
  */
184
294
  export declare const DELIVERY_OVERLAP_POLICIES: readonly ["skip", "queue"];
185
- export declare const deliveryOverlapPolicySchema: z.ZodEnum<{
295
+ export declare const deliveryOverlapPolicySchema: import("zod").ZodEnum<{
186
296
  skip: "skip";
187
297
  queue: "queue";
188
298
  }>;
@@ -197,7 +307,7 @@ export declare const DEFAULT_DELIVERY_OVERLAP_POLICY: DeliveryOverlapPolicy;
197
307
  * would make pausing and resuming a schedule invalidate occurrences that are
198
308
  * still perfectly valid.
199
309
  */
200
- export declare const generationSchema: z.ZodNumber;
310
+ export declare const generationSchema: import("zod").ZodNumber;
201
311
  export type Generation = z.infer<typeof generationSchema>;
202
312
  /**
203
313
  * A customer-supplied fairness key.
@@ -210,7 +320,7 @@ export type Generation = z.infer<typeof generationSchema>;
210
320
  * another Durable Object namespace.
211
321
  */
212
322
  export declare const PARTITION_KEY_MAX_LENGTH = 64;
213
- export declare const partitionKeySchema: z.ZodString;
323
+ export declare const partitionKeySchema: import("zod").ZodString;
214
324
  export type PartitionKey = z.infer<typeof partitionKeySchema>;
215
325
  /**
216
326
  * Every state one occurrence can be in.
@@ -226,18 +336,64 @@ export type PartitionKey = z.infer<typeof partitionKeySchema>;
226
336
  * occurrence went stale need different explanations.
227
337
  */
228
338
  export declare const OCCURRENCE_STATES: readonly ["planned", "due", "dispatching", "retry_wait", "ambiguous", "succeeded", "terminal_failed", "cancelled", "skipped_stale"];
229
- export declare const occurrenceStateSchema: z.ZodEnum<{
339
+ export declare const occurrenceStateSchema: import("zod").ZodEnum<{
340
+ due: "due";
230
341
  succeeded: "succeeded";
231
342
  ambiguous: "ambiguous";
232
343
  cancelled: "cancelled";
233
344
  planned: "planned";
234
- due: "due";
235
345
  dispatching: "dispatching";
236
346
  retry_wait: "retry_wait";
237
347
  terminal_failed: "terminal_failed";
238
348
  skipped_stale: "skipped_stale";
239
349
  }>;
240
350
  export type OccurrenceState = z.infer<typeof occurrenceStateSchema>;
351
+ /**
352
+ * One project-wide walk over retained occurrences, newest first.
353
+ *
354
+ * There is deliberately no order parameter: the Executions page answers what
355
+ * happened most recently, and making that fixed lets its index and cursor say
356
+ * the same thing. The date range is half-open, like every other time window in
357
+ * this contract, so adjacent requests neither overlap nor leave a gap.
358
+ */
359
+ export declare const projectOccurrenceListRequestSchema: import("zod").ZodObject<{
360
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
361
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
362
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
363
+ from: import("zod").ZodOptional<import("zod").ZodString>;
364
+ outcome: import("zod").ZodOptional<import("zod").ZodEnum<{
365
+ due: "due";
366
+ succeeded: "succeeded";
367
+ ambiguous: "ambiguous";
368
+ cancelled: "cancelled";
369
+ planned: "planned";
370
+ dispatching: "dispatching";
371
+ retry_wait: "retry_wait";
372
+ terminal_failed: "terminal_failed";
373
+ skipped_stale: "skipped_stale";
374
+ }>>;
375
+ schedule: import("zod").ZodOptional<import("zod").ZodString>;
376
+ to: import("zod").ZodOptional<import("zod").ZodString>;
377
+ }, import("zod/v4/core").$strip>;
378
+ export type ProjectOccurrenceListRequest = z.infer<typeof projectOccurrenceListRequestSchema>;
379
+ export type ProjectOccurrenceListRequestParse = {
380
+ readonly ok: true;
381
+ readonly page: ProjectOccurrenceListRequest;
382
+ } | {
383
+ readonly ok: false;
384
+ readonly errors: readonly FieldError[];
385
+ };
386
+ /** Read the project occurrence filters exactly as REST and MCP send them. */
387
+ export declare function parseProjectOccurrenceListRequest(query: URLSearchParams): ProjectOccurrenceListRequestParse;
388
+ /**
389
+ * The exact operation and filters a project occurrence cursor belongs to.
390
+ *
391
+ * Cursor and limit do not affect which ordered collection is being walked, so
392
+ * neither belongs in the binding. Every actual filter does. Optional values
393
+ * stay absent rather than becoming empty strings, which are invalid inputs and
394
+ * must never collide with an unfiltered request.
395
+ */
396
+ export declare function projectOccurrenceCursorBinding(request: ProjectOccurrenceListRequest): CursorBinding;
241
397
  /**
242
398
  * The states an occurrence never leaves.
243
399
  *
@@ -257,7 +413,7 @@ export declare function isTerminalOccurrenceState(state: OccurrenceState): boole
257
413
  * sanctioned mapping between them.
258
414
  */
259
415
  export declare const ATTEMPT_STATES: readonly ["succeeded", "retryable_failure", "terminal_failure", "ambiguous"];
260
- export declare const attemptStateSchema: z.ZodEnum<{
416
+ export declare const attemptStateSchema: import("zod").ZodEnum<{
261
417
  succeeded: "succeeded";
262
418
  ambiguous: "ambiguous";
263
419
  retryable_failure: "retryable_failure";
@@ -265,10 +421,10 @@ export declare const attemptStateSchema: z.ZodEnum<{
265
421
  }>;
266
422
  export type AttemptState = z.infer<typeof attemptStateSchema>;
267
423
  /** Safe diagnostic codes produced by the W3-03 delivery classifier. */
268
- export declare const attemptDiagnosticSchema: z.ZodEnum<{
424
+ export declare const attemptDiagnosticSchema: import("zod").ZodEnum<{
269
425
  rate_limited: "rate_limited";
270
- completion_timed_out: "completion_timed_out";
271
426
  delivered: "delivered";
427
+ completion_timed_out: "completion_timed_out";
272
428
  duplicate_inflight: "duplicate_inflight";
273
429
  endpoint_unavailable: "endpoint_unavailable";
274
430
  endpoint_unsafe: "endpoint_unsafe";
@@ -288,7 +444,7 @@ export type AttemptDiagnostic = z.infer<typeof attemptDiagnosticSchema>;
288
444
  * payload, or secret. `review_retry_policy` names the historical category
289
445
  * without promising that the occurrence still has automatic work to do.
290
446
  */
291
- export declare const ATTEMPT_REMEDIATIONS: readonly ["none", "review_retry_policy", "inspect_receiver", "verify_endpoint", "replace_payload", "contact_support", "review_before_redelivery"];
447
+ export declare const ATTEMPT_REMEDIATIONS: readonly ["none", "review_retry_policy", "inspect_receiver", "review_endpoint", "replace_payload", "contact_support", "review_before_redelivery"];
292
448
  /**
293
449
  * How much of one retained response header is published, in characters.
294
450
  *
@@ -300,11 +456,11 @@ export declare const ATTEMPT_REMEDIATIONS: readonly ["none", "review_retry_polic
300
456
  export declare const ATTEMPT_RESPONSE_HEADER_MAX_LENGTH = 256;
301
457
  /** How much of a failed receiver's body is published, in characters. */
302
458
  export declare const ATTEMPT_FAILURE_SNIPPET_MAX_LENGTH = 4096;
303
- export declare const attemptRemediationSchema: z.ZodEnum<{
459
+ export declare const attemptRemediationSchema: import("zod").ZodEnum<{
304
460
  none: "none";
305
461
  review_retry_policy: "review_retry_policy";
306
462
  inspect_receiver: "inspect_receiver";
307
- verify_endpoint: "verify_endpoint";
463
+ review_endpoint: "review_endpoint";
308
464
  replace_payload: "replace_payload";
309
465
  contact_support: "contact_support";
310
466
  review_before_redelivery: "review_before_redelivery";
@@ -326,12 +482,12 @@ export declare function remediationForAttempt(diagnostic: AttemptDiagnostic): At
326
482
  * and the failure mode of that drift is a receiver that re-runs work for a
327
483
  * cause the history says never happened.
328
484
  */
329
- export declare const attemptTriggerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
330
- kind: z.ZodLiteral<"automatic">;
331
- }, z.core.$strip>, z.ZodObject<{
332
- kind: z.ZodLiteral<"redelivery">;
333
- sourceAttemptId: z.ZodString;
334
- }, z.core.$strip>], "kind">;
485
+ export declare const attemptTriggerSchema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
486
+ kind: import("zod").ZodLiteral<"automatic">;
487
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
488
+ kind: import("zod").ZodLiteral<"redelivery">;
489
+ sourceAttemptId: import("zod").ZodString;
490
+ }, import("zod/v4/core").$strip>], "kind">;
335
491
  export type AttemptTrigger = CallbackTrigger;
336
492
  /**
337
493
  * The largest elapsed time JSON can carry without losing integer precision.
@@ -364,15 +520,35 @@ export declare const SCHEDULING_BOUNDS: {
364
520
  * Attempts made against one occurrence before it is terminal, including the
365
521
  * first. Bounded so a permanently broken receiver cannot make one occurrence
366
522
  * cost an unbounded amount of work.
523
+ *
524
+ * **Eight, and the number is load-bearing against a second limit rather than
525
+ * on its own.** `MAX_BUDGETED_DELIVERY_FAILURES` stops an occurrence after
526
+ * five failures the *receiver* caused; a rate limit and this product's own
527
+ * infrastructure faults are exempt from that count. The gap between the two
528
+ * is what the exemption spends — an occurrence throttled twice still has
529
+ * five receiver failures left. Lowering this to five was considered during
530
+ * the W4-10 walk and rejected once the pair was understood: it would make
531
+ * both limits fire on the same attempt and leave the exemption buying
532
+ * nothing.
367
533
  */
368
534
  readonly attemptsPerOccurrence: 8;
369
535
  /**
370
536
  * The longest fixed interval a recurring schedule may ask for, in seconds.
371
537
  *
372
- * Thirty days, which is the copied scheduler's `MAX_INTERVAL_SECONDS` kept
373
- * rather than a new number invented beside it, and its reason is the
374
- * platform's rather than the product's: a Durable Object alarm is not
375
- * arbitrarily far in the future.
538
+ * One year. **The thirty days this replaces had no reason of its own** — it
539
+ * was the copied scheduler's `MAX_INTERVAL_SECONDS`, carried over on the
540
+ * belief that "a Durable Object alarm is not arbitrarily far in the future".
541
+ * Cloudflare documents no maximum distance for `setAlarm()`, and the belief
542
+ * predates the PostgreSQL authority besides: the durable fact is a row, and
543
+ * the alarm is only what wakes a bucket to read it.
544
+ *
545
+ * What makes a distant alarm safe is not the alarm. `TimerBucketRepairer`
546
+ * asks PostgreSQL for occurrences whose instant has passed and re-signals
547
+ * their bucket, on committed truth, never asking whether an alarm was armed
548
+ * — so an alarm that is somehow lost costs lateness rather than the run.
549
+ *
550
+ * Widening a bound is additive by `classifyChange` and narrowing it is
551
+ * breaking, so this direction is the safe one to move in.
376
552
  */
377
553
  readonly everySecondsMax: number;
378
554
  /**
@@ -480,7 +656,7 @@ export declare const CRON_EXPRESSION_MAX_LENGTH = 120;
480
656
  * fire on a second boundary is refused by the partition, because a minute is
481
657
  * the granularity both arms of recurrence promise.
482
658
  */
483
- export declare const cronExpressionSchema: z.ZodString;
659
+ export declare const cronExpressionSchema: import("zod").ZodString;
484
660
  export type CronExpression = z.infer<typeof cronExpressionSchema>;
485
661
  /**
486
662
  * How a schedule recurs, as a caller reads it back.
@@ -498,17 +674,19 @@ export type CronExpression = z.infer<typeof cronExpressionSchema>;
498
674
  * on that arm rather than optional, so a read always says which wall clock a
499
675
  * cron schedule is on instead of leaving the caller to assume UTC.
500
676
  */
501
- export declare const recurrenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
502
- kind: z.ZodLiteral<"at">;
503
- }, z.core.$strip>, z.ZodObject<{
504
- everySeconds: z.ZodNumber;
505
- kind: z.ZodLiteral<"every">;
506
- }, z.core.$strip>, z.ZodObject<{
507
- cron: z.ZodString;
508
- kind: z.ZodLiteral<"cron">;
509
- timeZone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
510
- }, z.core.$strip>], "kind">;
677
+ export declare const recurrenceSchema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
678
+ kind: import("zod").ZodLiteral<"at">;
679
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
680
+ everySeconds: import("zod").ZodNumber;
681
+ kind: import("zod").ZodLiteral<"every">;
682
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
683
+ cron: import("zod").ZodString;
684
+ kind: import("zod").ZodLiteral<"cron">;
685
+ timeZone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
686
+ }, import("zod/v4/core").$strip>], "kind">;
511
687
  export type Recurrence = z.infer<typeof recurrenceSchema>;
688
+ /** The customer-safe default for a schedule's recurrence kind. */
689
+ export declare function defaultLatenessPolicyForRecurrence(kind: Recurrence["kind"]): LatenessPolicy;
512
690
  /**
513
691
  * A schedule, as a client sees it.
514
692
  *
@@ -517,109 +695,144 @@ export type Recurrence = z.infer<typeof recurrenceSchema>;
517
695
  * endpoint id is useful definition metadata; the encrypted payload is content
518
696
  * and stays only in the authoritative partition.
519
697
  */
520
- export declare const scheduleSchema: z.ZodObject<{
521
- archivedAt: z.ZodOptional<z.ZodString>;
522
- createdAt: z.ZodString;
523
- delivery: z.ZodOptional<z.ZodObject<{
524
- completion: z.ZodEnum<{
698
+ /**
699
+ * A schedule's name: for people, never an identifier, and free to collide.
700
+ *
701
+ * Generated on save when nobody types one (W4-14, FXO-2255) — "Every 60s →
702
+ * flowxo.com" — and stored as any other name, so editing the recurrence
703
+ * later rewrites nothing. Two schedules may share a name: two on the same
704
+ * cadence against the same host both generate the same one, and the operator
705
+ * chose to let them collide, with the other columns and the identifier
706
+ * telling them apart. Endpoints get the opposite rule.
707
+ */
708
+ /** The most a schedule's name may hold; the generated one is cut to fit it. */
709
+ export declare const SCHEDULE_NAME_MAX_LENGTH = 120;
710
+ export declare const scheduleNameSchema: import("zod").ZodString;
711
+ export declare const scheduleSchema: import("zod").ZodObject<{
712
+ archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
713
+ data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
714
+ createdAt: import("zod").ZodString;
715
+ delivery: import("zod").ZodOptional<import("zod").ZodObject<{
716
+ completion: import("zod").ZodEnum<{
525
717
  response: "response";
526
718
  callback: "callback";
527
719
  }>;
528
- maxDurationSeconds: z.ZodNumber;
529
- onOverlap: z.ZodEnum<{
720
+ maxDurationSeconds: import("zod").ZodNumber;
721
+ onOverlap: import("zod").ZodEnum<{
530
722
  skip: "skip";
531
723
  queue: "queue";
532
724
  }>;
533
- }, z.core.$strip>>;
534
- endpoint: z.ZodOptional<z.ZodString>;
535
- generation: z.ZodNumber;
536
- id: z.ZodString;
537
- latencyClass: z.ZodEnum<{
725
+ }, import("zod/v4/core").$strip>>;
726
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
727
+ endpointUrl: import("zod").ZodOptional<import("zod").ZodString>;
728
+ generation: import("zod").ZodNumber;
729
+ id: import("zod").ZodString;
730
+ latencyClass: import("zod").ZodEnum<{
538
731
  realtime: "realtime";
539
732
  bulk: "bulk";
540
733
  }>;
541
- partitionKey: z.ZodOptional<z.ZodString>;
542
- recurrence: z.ZodDiscriminatedUnion<[z.ZodObject<{
543
- kind: z.ZodLiteral<"at">;
544
- }, z.core.$strip>, z.ZodObject<{
545
- everySeconds: z.ZodNumber;
546
- kind: z.ZodLiteral<"every">;
547
- }, z.core.$strip>, z.ZodObject<{
548
- cron: z.ZodString;
549
- kind: z.ZodLiteral<"cron">;
550
- timeZone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
551
- }, z.core.$strip>], "kind">;
552
- status: z.ZodEnum<{
553
- paused: "paused";
734
+ lateness: import("zod").ZodObject<{
735
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
736
+ policy: import("zod").ZodEnum<{
737
+ skipAhead: "skipAhead";
738
+ catchUp: "catchUp";
739
+ }>;
740
+ }, import("zod/v4/core").$strict>;
741
+ name: import("zod").ZodOptional<import("zod").ZodString>;
742
+ partitionKey: import("zod").ZodOptional<import("zod").ZodString>;
743
+ nextDueAt: import("zod").ZodOptional<import("zod").ZodString>;
744
+ recurrence: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
745
+ kind: import("zod").ZodLiteral<"at">;
746
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
747
+ everySeconds: import("zod").ZodNumber;
748
+ kind: import("zod").ZodLiteral<"every">;
749
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
750
+ cron: import("zod").ZodString;
751
+ kind: import("zod").ZodLiteral<"cron">;
752
+ timeZone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
753
+ }, import("zod/v4/core").$strip>], "kind">;
754
+ status: import("zod").ZodEnum<{
554
755
  active: "active";
555
- cancelled: "cancelled";
556
756
  completed: "completed";
757
+ paused: "paused";
758
+ cancelled: "cancelled";
557
759
  }>;
558
- updatedAt: z.ZodString;
559
- version: z.ZodNumber;
560
- }, z.core.$strip>;
760
+ updatedAt: import("zod").ZodString;
761
+ version: import("zod").ZodNumber;
762
+ }, import("zod/v4/core").$strip>;
561
763
  export type Schedule = z.infer<typeof scheduleSchema>;
562
764
  /**
563
765
  * A page of schedules.
564
766
  *
565
767
  * Items are schedules rather than schedule *views*. A cross-partition listing is
566
- * served from the D1 projection W2-06 built, and that projection holds a route
768
+ * served from the control-plane projection W2-06 built, and that projection holds a route
567
769
  * and a summary rather than every partition's live occurrence — so a page that
568
770
  * promised an occurrence would either lie about its freshness or force the
569
771
  * listing back through every partition it spans. Detail is where the occurrence
570
772
  * is authoritative, and detail is one call away.
571
773
  */
572
- export declare const schedulePageSchema: z.ZodObject<{
573
- data: z.ZodArray<z.ZodObject<{
574
- archivedAt: z.ZodOptional<z.ZodString>;
575
- createdAt: z.ZodString;
576
- delivery: z.ZodOptional<z.ZodObject<{
577
- completion: z.ZodEnum<{
774
+ export declare const schedulePageSchema: import("zod").ZodObject<{
775
+ data: import("zod").ZodArray<import("zod").ZodObject<{
776
+ archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
777
+ data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
778
+ createdAt: import("zod").ZodString;
779
+ delivery: import("zod").ZodOptional<import("zod").ZodObject<{
780
+ completion: import("zod").ZodEnum<{
578
781
  response: "response";
579
782
  callback: "callback";
580
783
  }>;
581
- maxDurationSeconds: z.ZodNumber;
582
- onOverlap: z.ZodEnum<{
784
+ maxDurationSeconds: import("zod").ZodNumber;
785
+ onOverlap: import("zod").ZodEnum<{
583
786
  skip: "skip";
584
787
  queue: "queue";
585
788
  }>;
586
- }, z.core.$strip>>;
587
- endpoint: z.ZodOptional<z.ZodString>;
588
- generation: z.ZodNumber;
589
- id: z.ZodString;
590
- latencyClass: z.ZodEnum<{
789
+ }, import("zod/v4/core").$strip>>;
790
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
791
+ endpointUrl: import("zod").ZodOptional<import("zod").ZodString>;
792
+ generation: import("zod").ZodNumber;
793
+ id: import("zod").ZodString;
794
+ latencyClass: import("zod").ZodEnum<{
591
795
  realtime: "realtime";
592
796
  bulk: "bulk";
593
797
  }>;
594
- partitionKey: z.ZodOptional<z.ZodString>;
595
- recurrence: z.ZodDiscriminatedUnion<[z.ZodObject<{
596
- kind: z.ZodLiteral<"at">;
597
- }, z.core.$strip>, z.ZodObject<{
598
- everySeconds: z.ZodNumber;
599
- kind: z.ZodLiteral<"every">;
600
- }, z.core.$strip>, z.ZodObject<{
601
- cron: z.ZodString;
602
- kind: z.ZodLiteral<"cron">;
603
- timeZone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
604
- }, z.core.$strip>], "kind">;
605
- status: z.ZodEnum<{
606
- paused: "paused";
798
+ lateness: import("zod").ZodObject<{
799
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
800
+ policy: import("zod").ZodEnum<{
801
+ skipAhead: "skipAhead";
802
+ catchUp: "catchUp";
803
+ }>;
804
+ }, import("zod/v4/core").$strict>;
805
+ name: import("zod").ZodOptional<import("zod").ZodString>;
806
+ partitionKey: import("zod").ZodOptional<import("zod").ZodString>;
807
+ nextDueAt: import("zod").ZodOptional<import("zod").ZodString>;
808
+ recurrence: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
809
+ kind: import("zod").ZodLiteral<"at">;
810
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
811
+ everySeconds: import("zod").ZodNumber;
812
+ kind: import("zod").ZodLiteral<"every">;
813
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
814
+ cron: import("zod").ZodString;
815
+ kind: import("zod").ZodLiteral<"cron">;
816
+ timeZone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
817
+ }, import("zod/v4/core").$strip>], "kind">;
818
+ status: import("zod").ZodEnum<{
607
819
  active: "active";
608
- cancelled: "cancelled";
609
820
  completed: "completed";
821
+ paused: "paused";
822
+ cancelled: "cancelled";
610
823
  }>;
611
- updatedAt: z.ZodString;
612
- version: z.ZodNumber;
613
- }, z.core.$strip>>;
614
- freshness: z.ZodDiscriminatedUnion<[z.ZodObject<{
615
- kind: z.ZodLiteral<"authoritative">;
616
- }, z.core.$strip>, z.ZodObject<{
617
- asOf: z.ZodString;
618
- kind: z.ZodLiteral<"projected">;
619
- lagSeconds: z.ZodNumber;
620
- }, z.core.$strip>], "kind">;
621
- nextCursor: z.ZodOptional<z.ZodString>;
622
- }, z.core.$strip>;
824
+ updatedAt: import("zod").ZodString;
825
+ version: import("zod").ZodNumber;
826
+ }, import("zod/v4/core").$strip>>;
827
+ freshness: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
828
+ kind: import("zod").ZodLiteral<"authoritative">;
829
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
830
+ asOf: import("zod").ZodString;
831
+ kind: import("zod").ZodLiteral<"projected">;
832
+ lagSeconds: import("zod").ZodNumber;
833
+ }, import("zod/v4/core").$strip>], "kind">;
834
+ nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
835
+ }, import("zod/v4/core").$strip>;
623
836
  export type SchedulePage = z.infer<typeof schedulePageSchema>;
624
837
  /**
625
838
  * One concrete occurrence of a schedule.
@@ -629,26 +842,35 @@ export type SchedulePage = z.infer<typeof schedulePageSchema>;
629
842
  * numbering starts again. Together `(schedule, generation, sequence)` is what
630
843
  * makes an occurrence identifiable without depending on when it was written.
631
844
  */
632
- export declare const occurrenceSchema: z.ZodObject<{
633
- attemptCount: z.ZodNumber;
634
- generation: z.ZodNumber;
635
- id: z.ZodString;
636
- plannedFor: z.ZodString;
637
- schedule: z.ZodString;
638
- sequence: z.ZodNumber;
639
- settledAt: z.ZodOptional<z.ZodString>;
640
- state: z.ZodEnum<{
845
+ export declare const occurrenceSchema: import("zod").ZodObject<{
846
+ generation: import("zod").ZodNumber;
847
+ id: import("zod").ZodString;
848
+ plannedFor: import("zod").ZodString;
849
+ schedule: import("zod").ZodString;
850
+ sequence: import("zod").ZodNumber;
851
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
852
+ state: import("zod").ZodEnum<{
853
+ due: "due";
641
854
  succeeded: "succeeded";
642
855
  ambiguous: "ambiguous";
643
856
  cancelled: "cancelled";
644
857
  planned: "planned";
645
- due: "due";
646
858
  dispatching: "dispatching";
647
859
  retry_wait: "retry_wait";
648
860
  terminal_failed: "terminal_failed";
649
861
  skipped_stale: "skipped_stale";
650
862
  }>;
651
- }, z.core.$strip>;
863
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
864
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
865
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
866
+ customer_blocked: "customer_blocked";
867
+ eligible: "eligible";
868
+ platform_blocked: "platform_blocked";
869
+ }>>;
870
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
871
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
872
+ attemptCount: import("zod").ZodNumber;
873
+ }, import("zod/v4/core").$strip>;
652
874
  export type Occurrence = z.infer<typeof occurrenceSchema>;
653
875
  /**
654
876
  * One delivery attempt against one occurrence.
@@ -674,10 +896,10 @@ export type Occurrence = z.infer<typeof occurrenceSchema>;
674
896
  * can look up in their own logs. Cookies, `Authorization` and
675
897
  * `WWW-Authenticate` have no representation here at all.
676
898
  */
677
- export declare const attemptResponseHeaderSchema: z.ZodObject<{
678
- name: z.ZodString;
679
- value: z.ZodString;
680
- }, z.core.$strip>;
899
+ export declare const attemptResponseHeaderSchema: import("zod").ZodObject<{
900
+ name: import("zod").ZodString;
901
+ value: import("zod").ZodString;
902
+ }, import("zod/v4/core").$strip>;
681
903
  export type AttemptResponseHeader = z.infer<typeof attemptResponseHeaderSchema>;
682
904
  /**
683
905
  * What a failing receiver said, bounded and access-controlled.
@@ -692,194 +914,247 @@ export type AttemptResponseHeader = z.infer<typeof attemptResponseHeaderSchema>;
692
914
  * that is exactly the bound and a body that was cut at the bound are different
693
915
  * facts and only one of them should show a customer an ellipsis.
694
916
  */
695
- export declare const attemptFailureSnippetSchema: z.ZodObject<{
696
- contentType: z.ZodString;
697
- text: z.ZodString;
698
- truncated: z.ZodBoolean;
699
- }, z.core.$strip>;
917
+ export declare const attemptFailureSnippetSchema: import("zod").ZodObject<{
918
+ contentType: import("zod").ZodString;
919
+ text: import("zod").ZodString;
920
+ truncated: import("zod").ZodBoolean;
921
+ }, import("zod/v4/core").$strip>;
700
922
  export type AttemptFailureSnippet = z.infer<typeof attemptFailureSnippetSchema>;
701
- export declare const attemptSchema: z.ZodObject<{
702
- attemptNumber: z.ZodNumber;
703
- classifiedAt: z.ZodOptional<z.ZodString>;
704
- delivery: z.ZodString;
705
- diagnostic: z.ZodOptional<z.ZodEnum<{
706
- rate_limited: "rate_limited";
707
- completion_timed_out: "completion_timed_out";
708
- delivered: "delivered";
709
- duplicate_inflight: "duplicate_inflight";
710
- endpoint_unavailable: "endpoint_unavailable";
711
- endpoint_unsafe: "endpoint_unsafe";
712
- http_refused: "http_refused";
713
- http_retryable: "http_retryable";
714
- http_terminal: "http_terminal";
715
- identity_conflict: "identity_conflict";
716
- network_ambiguous: "network_ambiguous";
717
- payload_unavailable: "payload_unavailable";
718
- }>>;
719
- durationMs: z.ZodOptional<z.ZodNumber>;
720
- id: z.ZodString;
721
- occurrence: z.ZodString;
722
- remediation: z.ZodOptional<z.ZodEnum<{
923
+ export declare const attemptSchema: import("zod").ZodObject<{
924
+ id: import("zod").ZodString;
925
+ localReceiptRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
926
+ occurrence: import("zod").ZodString;
927
+ rescues: import("zod").ZodOptional<import("zod").ZodInt>;
928
+ remediation: import("zod").ZodOptional<import("zod").ZodEnum<{
723
929
  none: "none";
724
930
  review_retry_policy: "review_retry_policy";
725
931
  inspect_receiver: "inspect_receiver";
726
- verify_endpoint: "verify_endpoint";
932
+ review_endpoint: "review_endpoint";
727
933
  replace_payload: "replace_payload";
728
934
  contact_support: "contact_support";
729
935
  review_before_redelivery: "review_before_redelivery";
730
936
  }>>;
731
- failureSnippet: z.ZodOptional<z.ZodObject<{
732
- contentType: z.ZodString;
733
- text: z.ZodString;
734
- truncated: z.ZodBoolean;
735
- }, z.core.$strip>>;
736
- responseHeaders: z.ZodOptional<z.ZodArray<z.ZodObject<{
737
- name: z.ZodString;
738
- value: z.ZodString;
739
- }, z.core.$strip>>>;
740
- responseStatus: z.ZodOptional<z.ZodNumber>;
741
- startedAt: z.ZodString;
742
- state: z.ZodOptional<z.ZodEnum<{
937
+ failureSnippet: import("zod").ZodOptional<import("zod").ZodObject<{
938
+ contentType: import("zod").ZodString;
939
+ text: import("zod").ZodString;
940
+ truncated: import("zod").ZodBoolean;
941
+ }, import("zod/v4/core").$strip>>;
942
+ responseHeaders: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
943
+ name: import("zod").ZodString;
944
+ value: import("zod").ZodString;
945
+ }, import("zod/v4/core").$strip>>>;
946
+ responseStatus: import("zod").ZodOptional<import("zod").ZodNumber>;
947
+ startedAt: import("zod").ZodString;
948
+ state: import("zod").ZodOptional<import("zod").ZodEnum<{
743
949
  succeeded: "succeeded";
744
950
  ambiguous: "ambiguous";
745
951
  retryable_failure: "retryable_failure";
746
952
  terminal_failure: "terminal_failure";
747
953
  }>>;
748
- trigger: z.ZodDiscriminatedUnion<[z.ZodObject<{
749
- kind: z.ZodLiteral<"automatic">;
750
- }, z.core.$strip>, z.ZodObject<{
751
- kind: z.ZodLiteral<"redelivery">;
752
- sourceAttemptId: z.ZodString;
753
- }, z.core.$strip>], "kind">;
754
- }, z.core.$strip>;
954
+ trigger: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
955
+ kind: import("zod").ZodLiteral<"automatic">;
956
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
957
+ kind: import("zod").ZodLiteral<"redelivery">;
958
+ sourceAttemptId: import("zod").ZodString;
959
+ }, import("zod/v4/core").$strip>], "kind">;
960
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
961
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
962
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
963
+ customer_blocked: "customer_blocked";
964
+ eligible: "eligible";
965
+ platform_blocked: "platform_blocked";
966
+ }>>;
967
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
968
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
969
+ attemptNumber: import("zod").ZodNumber;
970
+ classifiedAt: import("zod").ZodOptional<import("zod").ZodString>;
971
+ delivery: import("zod").ZodString;
972
+ diagnostic: import("zod").ZodOptional<import("zod").ZodEnum<{
973
+ rate_limited: "rate_limited";
974
+ delivered: "delivered";
975
+ completion_timed_out: "completion_timed_out";
976
+ duplicate_inflight: "duplicate_inflight";
977
+ endpoint_unavailable: "endpoint_unavailable";
978
+ endpoint_unsafe: "endpoint_unsafe";
979
+ http_refused: "http_refused";
980
+ http_retryable: "http_retryable";
981
+ http_terminal: "http_terminal";
982
+ identity_conflict: "identity_conflict";
983
+ network_ambiguous: "network_ambiguous";
984
+ payload_unavailable: "payload_unavailable";
985
+ }>>;
986
+ dispatchRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
987
+ durationMs: import("zod").ZodOptional<import("zod").ZodNumber>;
988
+ }, import("zod/v4/core").$strip>;
755
989
  export type Attempt = z.infer<typeof attemptSchema>;
756
990
  /** An authoritative page over one schedule's retained occurrences. */
757
- export declare const occurrencePageSchema: z.ZodObject<{
758
- data: z.ZodArray<z.ZodObject<{
759
- attemptCount: z.ZodNumber;
760
- generation: z.ZodNumber;
761
- id: z.ZodString;
762
- plannedFor: z.ZodString;
763
- schedule: z.ZodString;
764
- sequence: z.ZodNumber;
765
- settledAt: z.ZodOptional<z.ZodString>;
766
- state: z.ZodEnum<{
991
+ export declare const occurrencePageSchema: import("zod").ZodObject<{
992
+ data: import("zod").ZodArray<import("zod").ZodObject<{
993
+ generation: import("zod").ZodNumber;
994
+ id: import("zod").ZodString;
995
+ plannedFor: import("zod").ZodString;
996
+ schedule: import("zod").ZodString;
997
+ sequence: import("zod").ZodNumber;
998
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
999
+ state: import("zod").ZodEnum<{
1000
+ due: "due";
767
1001
  succeeded: "succeeded";
768
1002
  ambiguous: "ambiguous";
769
1003
  cancelled: "cancelled";
770
1004
  planned: "planned";
771
- due: "due";
772
1005
  dispatching: "dispatching";
773
1006
  retry_wait: "retry_wait";
774
1007
  terminal_failed: "terminal_failed";
775
1008
  skipped_stale: "skipped_stale";
776
1009
  }>;
777
- }, z.core.$strip>>;
778
- nextCursor: z.ZodOptional<z.ZodString>;
779
- freshness: z.ZodObject<{
780
- kind: z.ZodLiteral<"authoritative">;
781
- }, z.core.$strip>;
782
- }, z.core.$strip>;
1010
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1011
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1012
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1013
+ customer_blocked: "customer_blocked";
1014
+ eligible: "eligible";
1015
+ platform_blocked: "platform_blocked";
1016
+ }>>;
1017
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1018
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1019
+ attemptCount: import("zod").ZodNumber;
1020
+ }, import("zod/v4/core").$strip>>;
1021
+ nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
1022
+ freshness: import("zod").ZodObject<{
1023
+ kind: import("zod").ZodLiteral<"authoritative">;
1024
+ }, import("zod/v4/core").$strip>;
1025
+ }, import("zod/v4/core").$strip>;
783
1026
  export type OccurrencePage = z.infer<typeof occurrencePageSchema>;
784
- /** An authoritative occurrence detail response. */
785
- export declare const occurrenceViewSchema: z.ZodObject<{
786
- freshness: z.ZodObject<{
787
- kind: z.ZodLiteral<"authoritative">;
788
- }, z.core.$strip>;
789
- occurrence: z.ZodObject<{
790
- attemptCount: z.ZodNumber;
791
- generation: z.ZodNumber;
792
- id: z.ZodString;
793
- plannedFor: z.ZodString;
794
- schedule: z.ZodString;
795
- sequence: z.ZodNumber;
796
- settledAt: z.ZodOptional<z.ZodString>;
797
- state: z.ZodEnum<{
1027
+ /** A project-wide occurrence page and its plan's normal history boundary. */
1028
+ export declare const projectOccurrencePageSchema: import("zod").ZodObject<{
1029
+ data: import("zod").ZodArray<import("zod").ZodObject<{
1030
+ generation: import("zod").ZodNumber;
1031
+ id: import("zod").ZodString;
1032
+ plannedFor: import("zod").ZodString;
1033
+ schedule: import("zod").ZodString;
1034
+ sequence: import("zod").ZodNumber;
1035
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
1036
+ state: import("zod").ZodEnum<{
1037
+ due: "due";
798
1038
  succeeded: "succeeded";
799
1039
  ambiguous: "ambiguous";
800
1040
  cancelled: "cancelled";
801
1041
  planned: "planned";
1042
+ dispatching: "dispatching";
1043
+ retry_wait: "retry_wait";
1044
+ terminal_failed: "terminal_failed";
1045
+ skipped_stale: "skipped_stale";
1046
+ }>;
1047
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1048
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1049
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1050
+ customer_blocked: "customer_blocked";
1051
+ eligible: "eligible";
1052
+ platform_blocked: "platform_blocked";
1053
+ }>>;
1054
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1055
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1056
+ attemptCount: import("zod").ZodNumber;
1057
+ }, import("zod/v4/core").$strip>>;
1058
+ nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
1059
+ freshness: import("zod").ZodObject<{
1060
+ kind: import("zod").ZodLiteral<"authoritative">;
1061
+ }, import("zod/v4/core").$strip>;
1062
+ retention: import("zod").ZodObject<{
1063
+ from: import("zod").ZodString;
1064
+ }, import("zod/v4/core").$strip>;
1065
+ }, import("zod/v4/core").$strip>;
1066
+ export type ProjectOccurrencePage = z.infer<typeof projectOccurrencePageSchema>;
1067
+ /** An authoritative occurrence detail response. */
1068
+ export declare const occurrenceViewSchema: import("zod").ZodObject<{
1069
+ freshness: import("zod").ZodObject<{
1070
+ kind: import("zod").ZodLiteral<"authoritative">;
1071
+ }, import("zod/v4/core").$strip>;
1072
+ occurrence: import("zod").ZodObject<{
1073
+ generation: import("zod").ZodNumber;
1074
+ id: import("zod").ZodString;
1075
+ plannedFor: import("zod").ZodString;
1076
+ schedule: import("zod").ZodString;
1077
+ sequence: import("zod").ZodNumber;
1078
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
1079
+ state: import("zod").ZodEnum<{
802
1080
  due: "due";
1081
+ succeeded: "succeeded";
1082
+ ambiguous: "ambiguous";
1083
+ cancelled: "cancelled";
1084
+ planned: "planned";
803
1085
  dispatching: "dispatching";
804
1086
  retry_wait: "retry_wait";
805
1087
  terminal_failed: "terminal_failed";
806
1088
  skipped_stale: "skipped_stale";
807
1089
  }>;
808
- }, z.core.$strip>;
809
- }, z.core.$strip>;
1090
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1091
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1092
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1093
+ customer_blocked: "customer_blocked";
1094
+ eligible: "eligible";
1095
+ platform_blocked: "platform_blocked";
1096
+ }>>;
1097
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1098
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1099
+ attemptCount: import("zod").ZodNumber;
1100
+ }, import("zod/v4/core").$strip>;
1101
+ }, import("zod/v4/core").$strip>;
810
1102
  export type OccurrenceView = z.infer<typeof occurrenceViewSchema>;
811
1103
  /** An authoritative page over one retained occurrence's immutable attempts. */
812
- export declare const attemptPageSchema: z.ZodObject<{
813
- data: z.ZodArray<z.ZodObject<{
814
- attemptNumber: z.ZodNumber;
815
- classifiedAt: z.ZodOptional<z.ZodString>;
816
- delivery: z.ZodString;
817
- diagnostic: z.ZodOptional<z.ZodEnum<{
818
- rate_limited: "rate_limited";
819
- completion_timed_out: "completion_timed_out";
820
- delivered: "delivered";
821
- duplicate_inflight: "duplicate_inflight";
822
- endpoint_unavailable: "endpoint_unavailable";
823
- endpoint_unsafe: "endpoint_unsafe";
824
- http_refused: "http_refused";
825
- http_retryable: "http_retryable";
826
- http_terminal: "http_terminal";
827
- identity_conflict: "identity_conflict";
828
- network_ambiguous: "network_ambiguous";
829
- payload_unavailable: "payload_unavailable";
830
- }>>;
831
- durationMs: z.ZodOptional<z.ZodNumber>;
832
- id: z.ZodString;
833
- occurrence: z.ZodString;
834
- remediation: z.ZodOptional<z.ZodEnum<{
1104
+ export declare const attemptPageSchema: import("zod").ZodObject<{
1105
+ data: import("zod").ZodArray<import("zod").ZodObject<{
1106
+ id: import("zod").ZodString;
1107
+ localReceiptRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
1108
+ occurrence: import("zod").ZodString;
1109
+ rescues: import("zod").ZodOptional<import("zod").ZodInt>;
1110
+ remediation: import("zod").ZodOptional<import("zod").ZodEnum<{
835
1111
  none: "none";
836
1112
  review_retry_policy: "review_retry_policy";
837
1113
  inspect_receiver: "inspect_receiver";
838
- verify_endpoint: "verify_endpoint";
1114
+ review_endpoint: "review_endpoint";
839
1115
  replace_payload: "replace_payload";
840
1116
  contact_support: "contact_support";
841
1117
  review_before_redelivery: "review_before_redelivery";
842
1118
  }>>;
843
- failureSnippet: z.ZodOptional<z.ZodObject<{
844
- contentType: z.ZodString;
845
- text: z.ZodString;
846
- truncated: z.ZodBoolean;
847
- }, z.core.$strip>>;
848
- responseHeaders: z.ZodOptional<z.ZodArray<z.ZodObject<{
849
- name: z.ZodString;
850
- value: z.ZodString;
851
- }, z.core.$strip>>>;
852
- responseStatus: z.ZodOptional<z.ZodNumber>;
853
- startedAt: z.ZodString;
854
- state: z.ZodOptional<z.ZodEnum<{
1119
+ failureSnippet: import("zod").ZodOptional<import("zod").ZodObject<{
1120
+ contentType: import("zod").ZodString;
1121
+ text: import("zod").ZodString;
1122
+ truncated: import("zod").ZodBoolean;
1123
+ }, import("zod/v4/core").$strip>>;
1124
+ responseHeaders: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1125
+ name: import("zod").ZodString;
1126
+ value: import("zod").ZodString;
1127
+ }, import("zod/v4/core").$strip>>>;
1128
+ responseStatus: import("zod").ZodOptional<import("zod").ZodNumber>;
1129
+ startedAt: import("zod").ZodString;
1130
+ state: import("zod").ZodOptional<import("zod").ZodEnum<{
855
1131
  succeeded: "succeeded";
856
1132
  ambiguous: "ambiguous";
857
1133
  retryable_failure: "retryable_failure";
858
1134
  terminal_failure: "terminal_failure";
859
1135
  }>>;
860
- trigger: z.ZodDiscriminatedUnion<[z.ZodObject<{
861
- kind: z.ZodLiteral<"automatic">;
862
- }, z.core.$strip>, z.ZodObject<{
863
- kind: z.ZodLiteral<"redelivery">;
864
- sourceAttemptId: z.ZodString;
865
- }, z.core.$strip>], "kind">;
866
- }, z.core.$strip>>;
867
- nextCursor: z.ZodOptional<z.ZodString>;
868
- freshness: z.ZodObject<{
869
- kind: z.ZodLiteral<"authoritative">;
870
- }, z.core.$strip>;
871
- }, z.core.$strip>;
872
- export type AttemptPage = z.infer<typeof attemptPageSchema>;
873
- /** An authoritative attempt detail or redelivery response. */
874
- export declare const attemptViewSchema: z.ZodObject<{
875
- attempt: z.ZodObject<{
876
- attemptNumber: z.ZodNumber;
877
- classifiedAt: z.ZodOptional<z.ZodString>;
878
- delivery: z.ZodString;
879
- diagnostic: z.ZodOptional<z.ZodEnum<{
1136
+ trigger: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1137
+ kind: import("zod").ZodLiteral<"automatic">;
1138
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1139
+ kind: import("zod").ZodLiteral<"redelivery">;
1140
+ sourceAttemptId: import("zod").ZodString;
1141
+ }, import("zod/v4/core").$strip>], "kind">;
1142
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1143
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1144
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1145
+ customer_blocked: "customer_blocked";
1146
+ eligible: "eligible";
1147
+ platform_blocked: "platform_blocked";
1148
+ }>>;
1149
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1150
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1151
+ attemptNumber: import("zod").ZodNumber;
1152
+ classifiedAt: import("zod").ZodOptional<import("zod").ZodString>;
1153
+ delivery: import("zod").ZodString;
1154
+ diagnostic: import("zod").ZodOptional<import("zod").ZodEnum<{
880
1155
  rate_limited: "rate_limited";
881
- completion_timed_out: "completion_timed_out";
882
1156
  delivered: "delivered";
1157
+ completion_timed_out: "completion_timed_out";
883
1158
  duplicate_inflight: "duplicate_inflight";
884
1159
  endpoint_unavailable: "endpoint_unavailable";
885
1160
  endpoint_unsafe: "endpoint_unsafe";
@@ -890,46 +1165,87 @@ export declare const attemptViewSchema: z.ZodObject<{
890
1165
  network_ambiguous: "network_ambiguous";
891
1166
  payload_unavailable: "payload_unavailable";
892
1167
  }>>;
893
- durationMs: z.ZodOptional<z.ZodNumber>;
894
- id: z.ZodString;
895
- occurrence: z.ZodString;
896
- remediation: z.ZodOptional<z.ZodEnum<{
1168
+ dispatchRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
1169
+ durationMs: import("zod").ZodOptional<import("zod").ZodNumber>;
1170
+ }, import("zod/v4/core").$strip>>;
1171
+ nextCursor: import("zod").ZodOptional<import("zod").ZodString>;
1172
+ freshness: import("zod").ZodObject<{
1173
+ kind: import("zod").ZodLiteral<"authoritative">;
1174
+ }, import("zod/v4/core").$strip>;
1175
+ }, import("zod/v4/core").$strip>;
1176
+ export type AttemptPage = z.infer<typeof attemptPageSchema>;
1177
+ /** An authoritative attempt detail or redelivery response. */
1178
+ export declare const attemptViewSchema: import("zod").ZodObject<{
1179
+ attempt: import("zod").ZodObject<{
1180
+ id: import("zod").ZodString;
1181
+ localReceiptRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
1182
+ occurrence: import("zod").ZodString;
1183
+ rescues: import("zod").ZodOptional<import("zod").ZodInt>;
1184
+ remediation: import("zod").ZodOptional<import("zod").ZodEnum<{
897
1185
  none: "none";
898
1186
  review_retry_policy: "review_retry_policy";
899
1187
  inspect_receiver: "inspect_receiver";
900
- verify_endpoint: "verify_endpoint";
1188
+ review_endpoint: "review_endpoint";
901
1189
  replace_payload: "replace_payload";
902
1190
  contact_support: "contact_support";
903
1191
  review_before_redelivery: "review_before_redelivery";
904
1192
  }>>;
905
- failureSnippet: z.ZodOptional<z.ZodObject<{
906
- contentType: z.ZodString;
907
- text: z.ZodString;
908
- truncated: z.ZodBoolean;
909
- }, z.core.$strip>>;
910
- responseHeaders: z.ZodOptional<z.ZodArray<z.ZodObject<{
911
- name: z.ZodString;
912
- value: z.ZodString;
913
- }, z.core.$strip>>>;
914
- responseStatus: z.ZodOptional<z.ZodNumber>;
915
- startedAt: z.ZodString;
916
- state: z.ZodOptional<z.ZodEnum<{
1193
+ failureSnippet: import("zod").ZodOptional<import("zod").ZodObject<{
1194
+ contentType: import("zod").ZodString;
1195
+ text: import("zod").ZodString;
1196
+ truncated: import("zod").ZodBoolean;
1197
+ }, import("zod/v4/core").$strip>>;
1198
+ responseHeaders: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1199
+ name: import("zod").ZodString;
1200
+ value: import("zod").ZodString;
1201
+ }, import("zod/v4/core").$strip>>>;
1202
+ responseStatus: import("zod").ZodOptional<import("zod").ZodNumber>;
1203
+ startedAt: import("zod").ZodString;
1204
+ state: import("zod").ZodOptional<import("zod").ZodEnum<{
917
1205
  succeeded: "succeeded";
918
1206
  ambiguous: "ambiguous";
919
1207
  retryable_failure: "retryable_failure";
920
1208
  terminal_failure: "terminal_failure";
921
1209
  }>>;
922
- trigger: z.ZodDiscriminatedUnion<[z.ZodObject<{
923
- kind: z.ZodLiteral<"automatic">;
924
- }, z.core.$strip>, z.ZodObject<{
925
- kind: z.ZodLiteral<"redelivery">;
926
- sourceAttemptId: z.ZodString;
927
- }, z.core.$strip>], "kind">;
928
- }, z.core.$strip>;
929
- freshness: z.ZodObject<{
930
- kind: z.ZodLiteral<"authoritative">;
931
- }, z.core.$strip>;
932
- }, z.core.$strip>;
1210
+ trigger: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1211
+ kind: import("zod").ZodLiteral<"automatic">;
1212
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1213
+ kind: import("zod").ZodLiteral<"redelivery">;
1214
+ sourceAttemptId: import("zod").ZodString;
1215
+ }, import("zod/v4/core").$strip>], "kind">;
1216
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1217
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1218
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1219
+ customer_blocked: "customer_blocked";
1220
+ eligible: "eligible";
1221
+ platform_blocked: "platform_blocked";
1222
+ }>>;
1223
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1224
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1225
+ attemptNumber: import("zod").ZodNumber;
1226
+ classifiedAt: import("zod").ZodOptional<import("zod").ZodString>;
1227
+ delivery: import("zod").ZodString;
1228
+ diagnostic: import("zod").ZodOptional<import("zod").ZodEnum<{
1229
+ rate_limited: "rate_limited";
1230
+ delivered: "delivered";
1231
+ completion_timed_out: "completion_timed_out";
1232
+ duplicate_inflight: "duplicate_inflight";
1233
+ endpoint_unavailable: "endpoint_unavailable";
1234
+ endpoint_unsafe: "endpoint_unsafe";
1235
+ http_refused: "http_refused";
1236
+ http_retryable: "http_retryable";
1237
+ http_terminal: "http_terminal";
1238
+ identity_conflict: "identity_conflict";
1239
+ network_ambiguous: "network_ambiguous";
1240
+ payload_unavailable: "payload_unavailable";
1241
+ }>>;
1242
+ dispatchRecoveries: import("zod").ZodOptional<import("zod").ZodInt>;
1243
+ durationMs: import("zod").ZodOptional<import("zod").ZodNumber>;
1244
+ }, import("zod/v4/core").$strip>;
1245
+ freshness: import("zod").ZodObject<{
1246
+ kind: import("zod").ZodLiteral<"authoritative">;
1247
+ }, import("zod/v4/core").$strip>;
1248
+ }, import("zod/v4/core").$strip>;
933
1249
  export type AttemptView = z.infer<typeof attemptViewSchema>;
934
1250
  /**
935
1251
  * A schedule together with the occurrence that is next to happen.
@@ -939,69 +1255,89 @@ export type AttemptView = z.infer<typeof attemptViewSchema>;
939
1255
  * that has to make a second request to answer it will cache the first answer and
940
1256
  * be wrong.
941
1257
  */
942
- export declare const scheduleViewSchema: z.ZodObject<{
943
- occurrence: z.ZodObject<{
944
- attemptCount: z.ZodNumber;
945
- generation: z.ZodNumber;
946
- id: z.ZodString;
947
- plannedFor: z.ZodString;
948
- schedule: z.ZodString;
949
- sequence: z.ZodNumber;
950
- settledAt: z.ZodOptional<z.ZodString>;
951
- state: z.ZodEnum<{
1258
+ export declare const scheduleViewSchema: import("zod").ZodObject<{
1259
+ occurrence: import("zod").ZodObject<{
1260
+ generation: import("zod").ZodNumber;
1261
+ id: import("zod").ZodString;
1262
+ plannedFor: import("zod").ZodString;
1263
+ schedule: import("zod").ZodString;
1264
+ sequence: import("zod").ZodNumber;
1265
+ settledAt: import("zod").ZodOptional<import("zod").ZodString>;
1266
+ state: import("zod").ZodEnum<{
1267
+ due: "due";
952
1268
  succeeded: "succeeded";
953
1269
  ambiguous: "ambiguous";
954
1270
  cancelled: "cancelled";
955
1271
  planned: "planned";
956
- due: "due";
957
1272
  dispatching: "dispatching";
958
1273
  retry_wait: "retry_wait";
959
1274
  terminal_failed: "terminal_failed";
960
1275
  skipped_stale: "skipped_stale";
961
1276
  }>;
962
- }, z.core.$strip>;
963
- schedule: z.ZodObject<{
964
- archivedAt: z.ZodOptional<z.ZodString>;
965
- createdAt: z.ZodString;
966
- delivery: z.ZodOptional<z.ZodObject<{
967
- completion: z.ZodEnum<{
1277
+ firstAttemptLatenessMs: import("zod").ZodOptional<import("zod").ZodInt>;
1278
+ firstAttemptStartedAt: import("zod").ZodOptional<import("zod").ZodString>;
1279
+ timingEligibility: import("zod").ZodOptional<import("zod").ZodEnum<{
1280
+ customer_blocked: "customer_blocked";
1281
+ eligible: "eligible";
1282
+ platform_blocked: "platform_blocked";
1283
+ }>>;
1284
+ timingEligibilityReason: import("zod").ZodOptional<import("zod").ZodString>;
1285
+ timingPolicyVersion: import("zod").ZodOptional<import("zod").ZodString>;
1286
+ attemptCount: import("zod").ZodNumber;
1287
+ }, import("zod/v4/core").$strip>;
1288
+ schedule: import("zod").ZodObject<{
1289
+ archivedAt: import("zod").ZodOptional<import("zod").ZodString>;
1290
+ data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1291
+ createdAt: import("zod").ZodString;
1292
+ delivery: import("zod").ZodOptional<import("zod").ZodObject<{
1293
+ completion: import("zod").ZodEnum<{
968
1294
  response: "response";
969
1295
  callback: "callback";
970
1296
  }>;
971
- maxDurationSeconds: z.ZodNumber;
972
- onOverlap: z.ZodEnum<{
1297
+ maxDurationSeconds: import("zod").ZodNumber;
1298
+ onOverlap: import("zod").ZodEnum<{
973
1299
  skip: "skip";
974
1300
  queue: "queue";
975
1301
  }>;
976
- }, z.core.$strip>>;
977
- endpoint: z.ZodOptional<z.ZodString>;
978
- generation: z.ZodNumber;
979
- id: z.ZodString;
980
- latencyClass: z.ZodEnum<{
1302
+ }, import("zod/v4/core").$strip>>;
1303
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
1304
+ endpointUrl: import("zod").ZodOptional<import("zod").ZodString>;
1305
+ generation: import("zod").ZodNumber;
1306
+ id: import("zod").ZodString;
1307
+ latencyClass: import("zod").ZodEnum<{
981
1308
  realtime: "realtime";
982
1309
  bulk: "bulk";
983
1310
  }>;
984
- partitionKey: z.ZodOptional<z.ZodString>;
985
- recurrence: z.ZodDiscriminatedUnion<[z.ZodObject<{
986
- kind: z.ZodLiteral<"at">;
987
- }, z.core.$strip>, z.ZodObject<{
988
- everySeconds: z.ZodNumber;
989
- kind: z.ZodLiteral<"every">;
990
- }, z.core.$strip>, z.ZodObject<{
991
- cron: z.ZodString;
992
- kind: z.ZodLiteral<"cron">;
993
- timeZone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
994
- }, z.core.$strip>], "kind">;
995
- status: z.ZodEnum<{
996
- paused: "paused";
1311
+ lateness: import("zod").ZodObject<{
1312
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1313
+ policy: import("zod").ZodEnum<{
1314
+ skipAhead: "skipAhead";
1315
+ catchUp: "catchUp";
1316
+ }>;
1317
+ }, import("zod/v4/core").$strict>;
1318
+ name: import("zod").ZodOptional<import("zod").ZodString>;
1319
+ partitionKey: import("zod").ZodOptional<import("zod").ZodString>;
1320
+ nextDueAt: import("zod").ZodOptional<import("zod").ZodString>;
1321
+ recurrence: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
1322
+ kind: import("zod").ZodLiteral<"at">;
1323
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1324
+ everySeconds: import("zod").ZodNumber;
1325
+ kind: import("zod").ZodLiteral<"every">;
1326
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1327
+ cron: import("zod").ZodString;
1328
+ kind: import("zod").ZodLiteral<"cron">;
1329
+ timeZone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
1330
+ }, import("zod/v4/core").$strip>], "kind">;
1331
+ status: import("zod").ZodEnum<{
997
1332
  active: "active";
998
- cancelled: "cancelled";
999
1333
  completed: "completed";
1334
+ paused: "paused";
1335
+ cancelled: "cancelled";
1000
1336
  }>;
1001
- updatedAt: z.ZodString;
1002
- version: z.ZodNumber;
1003
- }, z.core.$strip>;
1004
- }, z.core.$strip>;
1337
+ updatedAt: import("zod").ZodString;
1338
+ version: import("zod").ZodNumber;
1339
+ }, import("zod/v4/core").$strip>;
1340
+ }, import("zod/v4/core").$strip>;
1005
1341
  export type ScheduleView = z.infer<typeof scheduleViewSchema>;
1006
1342
  /**
1007
1343
  * The four ways a caller may say when a schedule happens.
@@ -1027,32 +1363,42 @@ export declare const RECURRENCE_REQUEST_FIELDS: readonly ["at", "cron", "delaySe
1027
1363
  * `ambiguous_schedule`, and a scheduler that silently picks one of two instants
1028
1364
  * a customer named is the worst kind of helpful.
1029
1365
  */
1030
- export declare const scheduleRequestSchema: z.ZodObject<{
1031
- at: z.ZodOptional<z.ZodString>;
1032
- cron: z.ZodOptional<z.ZodString>;
1033
- data: z.ZodOptional<z.ZodJSONSchema>;
1034
- delaySeconds: z.ZodOptional<z.ZodNumber>;
1035
- delivery: z.ZodOptional<z.ZodObject<{
1036
- onOverlap: z.ZodOptional<z.ZodEnum<{
1366
+ export declare const scheduleRequestSchema: import("zod").ZodObject<{
1367
+ at: import("zod").ZodOptional<import("zod").ZodString>;
1368
+ cron: import("zod").ZodOptional<import("zod").ZodString>;
1369
+ data: import("zod").ZodOptional<import("zod").ZodJSONSchema>;
1370
+ delaySeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1371
+ delivery: import("zod").ZodOptional<import("zod").ZodObject<{
1372
+ onOverlap: import("zod").ZodOptional<import("zod").ZodEnum<{
1037
1373
  skip: "skip";
1038
1374
  queue: "queue";
1039
1375
  }>>;
1040
- completion: z.ZodOptional<z.ZodEnum<{
1376
+ completion: import("zod").ZodOptional<import("zod").ZodEnum<{
1041
1377
  response: "response";
1042
1378
  callback: "callback";
1043
1379
  }>>;
1044
- maxDurationSeconds: z.ZodOptional<z.ZodLiteral<300 | 5 | 30 | 900 | 1800 | 3600 | 43200 | 86400>>;
1045
- }, z.core.$strict>>;
1046
- everySeconds: z.ZodOptional<z.ZodNumber>;
1047
- endpoint: z.ZodOptional<z.ZodString>;
1048
- latencyClass: z.ZodOptional<z.ZodEnum<{
1380
+ maxDurationSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1381
+ }, import("zod/v4/core").$strict>>;
1382
+ everySeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1383
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
1384
+ latencyClass: import("zod").ZodOptional<import("zod").ZodEnum<{
1049
1385
  realtime: "realtime";
1050
1386
  bulk: "bulk";
1051
1387
  }>>;
1052
- partitionKey: z.ZodOptional<z.ZodString>;
1053
- timeZone: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
1054
- }, z.core.$strict>;
1388
+ lateness: import("zod").ZodOptional<import("zod").ZodObject<{
1389
+ maxStalenessSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
1390
+ policy: import("zod").ZodOptional<import("zod").ZodEnum<{
1391
+ skipAhead: "skipAhead";
1392
+ catchUp: "catchUp";
1393
+ }>>;
1394
+ }, import("zod/v4/core").$strict>>;
1395
+ partitionKey: import("zod").ZodOptional<import("zod").ZodString>;
1396
+ name: import("zod").ZodOptional<import("zod").ZodString>;
1397
+ timeZone: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>>;
1398
+ }, import("zod/v4/core").$strict>;
1055
1399
  export type ScheduleRequest = z.infer<typeof scheduleRequestSchema>;
1400
+ /** Resolve the lateness settings a create or replacement request runs under. */
1401
+ export declare function deriveLatenessSettings(request: ScheduleRequest): LatenessSettings;
1056
1402
  /**
1057
1403
  * The class a request runs under: the caller's, or the one its recurrence
1058
1404
  * implies.