@todoist/sdk 0.0.1 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +293 -29
  3. package/dist/esm/authentication.js +307 -0
  4. package/dist/esm/clients/activity-client.js +60 -0
  5. package/dist/esm/clients/app-client.js +366 -0
  6. package/dist/esm/clients/backup-client.js +47 -0
  7. package/dist/esm/clients/base-client.js +29 -0
  8. package/dist/esm/clients/billing-client.js +160 -0
  9. package/dist/esm/clients/comment-client.js +92 -0
  10. package/dist/esm/clients/email-client.js +41 -0
  11. package/dist/esm/clients/filter-client.js +26 -0
  12. package/dist/esm/clients/folder-client.js +80 -0
  13. package/dist/esm/clients/id-mapping-client.js +37 -0
  14. package/dist/esm/clients/insights-client.js +89 -0
  15. package/dist/esm/clients/label-client.js +131 -0
  16. package/dist/esm/clients/productivity-client.js +24 -0
  17. package/dist/esm/clients/project-client.js +284 -0
  18. package/dist/esm/clients/reminder-client.js +204 -0
  19. package/dist/esm/clients/section-client.js +121 -0
  20. package/dist/esm/clients/task-client.js +264 -0
  21. package/dist/esm/clients/template-client.js +89 -0
  22. package/dist/esm/clients/ui-extension-client.js +110 -0
  23. package/dist/esm/clients/upload-client.js +153 -0
  24. package/dist/esm/clients/view-options-client.js +21 -0
  25. package/dist/esm/clients/workspace-client.js +384 -0
  26. package/dist/esm/consts/endpoints.js +193 -0
  27. package/dist/esm/index.js +5 -0
  28. package/dist/esm/test-utils/asserts.js +8 -0
  29. package/dist/esm/test-utils/msw-setup.js +88 -0
  30. package/dist/esm/test-utils/obsidian-fetch-adapter.js +51 -0
  31. package/dist/esm/test-utils/test-defaults.js +367 -0
  32. package/dist/esm/test-utils/transport-seam.js +15 -0
  33. package/dist/esm/test-utils/webhook-fixtures.js +26 -0
  34. package/dist/esm/todoist-api.js +1757 -0
  35. package/dist/esm/transport/fetch-with-retry.js +216 -0
  36. package/dist/esm/transport/http-client.js +140 -0
  37. package/dist/esm/transport/http-dispatcher.js +158 -0
  38. package/dist/esm/transport/sync-request.js +106 -0
  39. package/dist/esm/types/activity/index.js +2 -0
  40. package/dist/esm/types/activity/requests.js +1 -0
  41. package/dist/esm/types/activity/types.js +45 -0
  42. package/dist/esm/types/apps/index.js +2 -0
  43. package/dist/esm/types/apps/requests.js +1 -0
  44. package/dist/esm/types/apps/types.js +249 -0
  45. package/dist/esm/types/backups/index.js +2 -0
  46. package/dist/esm/types/backups/requests.js +1 -0
  47. package/dist/esm/types/backups/types.js +5 -0
  48. package/dist/esm/types/billing/index.js +2 -0
  49. package/dist/esm/types/billing/requests.js +1 -0
  50. package/dist/esm/types/billing/types.js +89 -0
  51. package/dist/esm/types/comments/index.js +2 -0
  52. package/dist/esm/types/comments/requests.js +1 -0
  53. package/dist/esm/types/comments/types.js +57 -0
  54. package/dist/esm/types/common.js +7 -0
  55. package/dist/esm/types/emails/index.js +1 -0
  56. package/dist/esm/types/emails/requests.js +2 -0
  57. package/dist/esm/types/errors.js +41 -0
  58. package/dist/esm/types/folders/index.js +1 -0
  59. package/dist/esm/types/folders/requests.js +1 -0
  60. package/dist/esm/types/http.js +20 -0
  61. package/dist/esm/types/id-mappings/index.js +2 -0
  62. package/dist/esm/types/id-mappings/requests.js +17 -0
  63. package/dist/esm/types/id-mappings/types.js +9 -0
  64. package/dist/esm/types/index.js +24 -0
  65. package/dist/esm/types/insights/index.js +2 -0
  66. package/dist/esm/types/insights/requests.js +1 -0
  67. package/dist/esm/types/insights/types.js +77 -0
  68. package/dist/esm/types/labels/index.js +2 -0
  69. package/dist/esm/types/labels/requests.js +1 -0
  70. package/dist/esm/types/labels/types.js +8 -0
  71. package/dist/esm/types/productivity/index.js +1 -0
  72. package/dist/esm/types/productivity/types.js +65 -0
  73. package/dist/esm/types/projects/index.js +2 -0
  74. package/dist/esm/types/projects/requests.js +1 -0
  75. package/dist/esm/types/projects/types.js +65 -0
  76. package/dist/esm/types/reminders/index.js +1 -0
  77. package/dist/esm/types/reminders/requests.js +92 -0
  78. package/dist/esm/types/sections/index.js +2 -0
  79. package/dist/esm/types/sections/requests.js +1 -0
  80. package/dist/esm/types/sections/types.js +23 -0
  81. package/dist/esm/types/sync/commands/calendars.js +1 -0
  82. package/dist/esm/types/sync/commands/filters.js +1 -0
  83. package/dist/esm/types/sync/commands/folders.js +1 -0
  84. package/dist/esm/types/sync/commands/index.js +18 -0
  85. package/dist/esm/types/sync/commands/labels.js +2 -0
  86. package/dist/esm/types/sync/commands/notes.js +1 -0
  87. package/dist/esm/types/sync/commands/notifications.js +1 -0
  88. package/dist/esm/types/sync/commands/others.js +1 -0
  89. package/dist/esm/types/sync/commands/project-view-options.js +1 -0
  90. package/dist/esm/types/sync/commands/projects.js +1 -0
  91. package/dist/esm/types/sync/commands/reminders.js +1 -0
  92. package/dist/esm/types/sync/commands/sections.js +1 -0
  93. package/dist/esm/types/sync/commands/shared.js +16 -0
  94. package/dist/esm/types/sync/commands/sharing.js +1 -0
  95. package/dist/esm/types/sync/commands/tasks.js +1 -0
  96. package/dist/esm/types/sync/commands/view-options.js +1 -0
  97. package/dist/esm/types/sync/commands/workspace-filters.js +1 -0
  98. package/dist/esm/types/sync/commands/workspaces.js +1 -0
  99. package/dist/esm/types/sync/index.js +6 -0
  100. package/dist/esm/types/sync/request.js +1 -0
  101. package/dist/esm/types/sync/resource-types.js +36 -0
  102. package/dist/esm/types/sync/resources/calendars.js +24 -0
  103. package/dist/esm/types/sync/resources/collaborators.js +21 -0
  104. package/dist/esm/types/sync/resources/completed-info.js +21 -0
  105. package/dist/esm/types/sync/resources/filters.js +12 -0
  106. package/dist/esm/types/sync/resources/folders.js +10 -0
  107. package/dist/esm/types/sync/resources/index.js +18 -0
  108. package/dist/esm/types/sync/resources/labels.js +7 -0
  109. package/dist/esm/types/sync/resources/live-notifications.js +35 -0
  110. package/dist/esm/types/sync/resources/notes.js +18 -0
  111. package/dist/esm/types/sync/resources/reminders.js +58 -0
  112. package/dist/esm/types/sync/resources/suggestions.js +33 -0
  113. package/dist/esm/types/sync/resources/tooltips.js +5 -0
  114. package/dist/esm/types/sync/resources/user-plan-limits.js +21 -0
  115. package/dist/esm/types/sync/resources/user-settings.js +41 -0
  116. package/dist/esm/types/sync/resources/user-status.js +22 -0
  117. package/dist/esm/types/sync/resources/user.js +109 -0
  118. package/dist/esm/types/sync/resources/view-options.js +128 -0
  119. package/dist/esm/types/sync/resources/workspace-filters.js +17 -0
  120. package/dist/esm/types/sync/resources/workspaces.js +69 -0
  121. package/dist/esm/types/sync/response.js +57 -0
  122. package/dist/esm/types/sync/user-preferences.js +68 -0
  123. package/dist/esm/types/tasks/index.js +2 -0
  124. package/dist/esm/types/tasks/requests.js +1 -0
  125. package/dist/esm/types/tasks/types.js +56 -0
  126. package/dist/esm/types/templates/index.js +1 -0
  127. package/dist/esm/types/templates/requests.js +1 -0
  128. package/dist/esm/types/ui-extensions/index.js +2 -0
  129. package/dist/esm/types/ui-extensions/requests.js +1 -0
  130. package/dist/esm/types/ui-extensions/types.js +74 -0
  131. package/dist/esm/types/uploads/index.js +1 -0
  132. package/dist/esm/types/uploads/requests.js +1 -0
  133. package/dist/esm/types/users/index.js +1 -0
  134. package/dist/esm/types/users/types.js +49 -0
  135. package/dist/esm/types/webhooks/comments.js +93 -0
  136. package/dist/esm/types/webhooks/envelope.js +23 -0
  137. package/dist/esm/types/webhooks/filters.js +27 -0
  138. package/dist/esm/types/webhooks/index.js +9 -0
  139. package/dist/esm/types/webhooks/labels.js +51 -0
  140. package/dist/esm/types/webhooks/projects.js +33 -0
  141. package/dist/esm/types/webhooks/reminders.js +32 -0
  142. package/dist/esm/types/webhooks/sections.js +50 -0
  143. package/dist/esm/types/webhooks/tasks.js +65 -0
  144. package/dist/esm/types/webhooks/types.js +52 -0
  145. package/dist/esm/types/workspaces/index.js +2 -0
  146. package/dist/esm/types/workspaces/requests.js +1 -0
  147. package/dist/esm/types/workspaces/types.js +151 -0
  148. package/dist/esm/utils/activity-helpers.js +53 -0
  149. package/dist/esm/utils/case-conversion.js +84 -0
  150. package/dist/esm/utils/colors.js +145 -0
  151. package/dist/esm/utils/file-response.js +29 -0
  152. package/dist/esm/utils/filter-queries.js +231 -0
  153. package/dist/esm/utils/filter-query-definitions.js +2789 -0
  154. package/dist/esm/utils/headers.js +42 -0
  155. package/dist/esm/utils/index.js +11 -0
  156. package/dist/esm/utils/multipart-upload.js +267 -0
  157. package/dist/esm/utils/person-names.js +61 -0
  158. package/dist/esm/utils/processing-helpers.js +12 -0
  159. package/dist/esm/utils/project-helpers.js +29 -0
  160. package/dist/esm/utils/request-helpers.js +43 -0
  161. package/dist/esm/utils/sanitization.js +131 -0
  162. package/dist/esm/utils/sync-helpers.js +19 -0
  163. package/dist/esm/utils/task-sorting.js +280 -0
  164. package/dist/esm/utils/uncompletable-helpers.js +54 -0
  165. package/dist/esm/utils/url-helpers.js +196 -0
  166. package/dist/esm/utils/validators.js +102 -0
  167. package/dist/esm/utils/view-options.js +15 -0
  168. package/dist/esm/utils/webhook-parser.js +56 -0
  169. package/dist/types/authentication.d.ts +262 -0
  170. package/dist/types/clients/activity-client.d.ts +12 -0
  171. package/dist/types/clients/app-client.d.ts +37 -0
  172. package/dist/types/clients/backup-client.d.ts +14 -0
  173. package/dist/types/clients/base-client.d.ts +23 -0
  174. package/dist/types/clients/billing-client.d.ts +22 -0
  175. package/dist/types/clients/comment-client.d.ts +15 -0
  176. package/dist/types/clients/email-client.d.ts +13 -0
  177. package/dist/types/clients/filter-client.d.ts +10 -0
  178. package/dist/types/clients/folder-client.d.ts +16 -0
  179. package/dist/types/clients/id-mapping-client.d.ts +13 -0
  180. package/dist/types/clients/insights-client.d.ts +18 -0
  181. package/dist/types/clients/label-client.d.ts +19 -0
  182. package/dist/types/clients/productivity-client.d.ts +12 -0
  183. package/dist/types/clients/project-client.d.ts +22 -0
  184. package/dist/types/clients/reminder-client.d.ts +25 -0
  185. package/dist/types/clients/section-client.d.ts +18 -0
  186. package/dist/types/clients/task-client.d.ts +25 -0
  187. package/dist/types/clients/template-client.d.ts +17 -0
  188. package/dist/types/clients/ui-extension-client.d.ts +18 -0
  189. package/dist/types/clients/upload-client.d.ts +17 -0
  190. package/dist/types/clients/view-options-client.d.ts +8 -0
  191. package/dist/types/clients/workspace-client.d.ts +43 -0
  192. package/dist/types/consts/endpoints.d.ts +120 -0
  193. package/dist/types/index.d.ts +6 -0
  194. package/dist/types/test-utils/asserts.d.ts +1 -0
  195. package/dist/types/test-utils/msw-setup.d.ts +33 -0
  196. package/dist/types/test-utils/obsidian-fetch-adapter.d.ts +29 -0
  197. package/dist/types/test-utils/test-defaults.d.ts +286 -0
  198. package/dist/types/test-utils/transport-seam.d.ts +1 -0
  199. package/dist/types/test-utils/webhook-fixtures.d.ts +13 -0
  200. package/dist/types/todoist-api.d.ts +1437 -0
  201. package/dist/types/transport/fetch-with-retry.d.ts +12 -0
  202. package/dist/types/transport/http-client.d.ts +25 -0
  203. package/dist/types/transport/http-dispatcher.d.ts +65 -0
  204. package/dist/types/transport/sync-request.d.ts +31 -0
  205. package/dist/types/types/activity/index.d.ts +2 -0
  206. package/dist/types/types/activity/requests.d.ts +85 -0
  207. package/dist/types/types/activity/types.d.ts +56 -0
  208. package/dist/types/types/apps/index.d.ts +2 -0
  209. package/dist/types/types/apps/requests.d.ts +89 -0
  210. package/dist/types/types/apps/types.d.ts +418 -0
  211. package/dist/types/types/backups/index.d.ts +2 -0
  212. package/dist/types/types/backups/requests.d.ts +16 -0
  213. package/dist/types/types/backups/types.d.ts +7 -0
  214. package/dist/types/types/billing/index.d.ts +2 -0
  215. package/dist/types/types/billing/requests.d.ts +62 -0
  216. package/dist/types/types/billing/types.d.ts +207 -0
  217. package/dist/types/types/comments/index.d.ts +2 -0
  218. package/dist/types/types/comments/requests.d.ts +64 -0
  219. package/dist/types/types/comments/types.d.ts +141 -0
  220. package/dist/types/types/common.d.ts +13 -0
  221. package/dist/types/types/emails/index.d.ts +1 -0
  222. package/dist/types/types/emails/requests.d.ts +30 -0
  223. package/dist/types/types/errors.d.ts +29 -0
  224. package/dist/types/types/folders/index.d.ts +1 -0
  225. package/dist/types/types/folders/requests.d.ts +20 -0
  226. package/dist/types/types/http.d.ts +104 -0
  227. package/dist/types/types/id-mappings/index.d.ts +2 -0
  228. package/dist/types/types/id-mappings/requests.d.ts +28 -0
  229. package/dist/types/types/id-mappings/types.d.ts +13 -0
  230. package/dist/types/types/index.d.ts +24 -0
  231. package/dist/types/types/insights/index.d.ts +2 -0
  232. package/dist/types/types/insights/requests.d.ts +26 -0
  233. package/dist/types/types/insights/types.d.ts +167 -0
  234. package/dist/types/types/labels/index.d.ts +2 -0
  235. package/dist/types/types/labels/requests.d.ts +75 -0
  236. package/dist/types/types/labels/types.d.ts +13 -0
  237. package/dist/types/types/productivity/index.d.ts +1 -0
  238. package/dist/types/types/productivity/types.d.ts +115 -0
  239. package/dist/types/types/projects/index.d.ts +2 -0
  240. package/dist/types/types/projects/requests.d.ts +206 -0
  241. package/dist/types/types/projects/types.d.ts +286 -0
  242. package/dist/types/types/reminders/index.d.ts +1 -0
  243. package/dist/types/types/reminders/requests.d.ts +205 -0
  244. package/dist/types/types/sections/index.d.ts +2 -0
  245. package/dist/types/types/sections/requests.d.ts +49 -0
  246. package/dist/types/types/sections/types.d.ts +70 -0
  247. package/dist/types/types/sync/commands/calendars.d.ts +14 -0
  248. package/dist/types/types/sync/commands/filters.d.ts +24 -0
  249. package/dist/types/types/sync/commands/folders.d.ts +20 -0
  250. package/dist/types/types/sync/commands/index.d.ts +167 -0
  251. package/dist/types/types/sync/commands/labels.d.ts +32 -0
  252. package/dist/types/types/sync/commands/notes.d.ts +27 -0
  253. package/dist/types/types/sync/commands/notifications.d.ts +10 -0
  254. package/dist/types/types/sync/commands/others.d.ts +61 -0
  255. package/dist/types/types/sync/commands/project-view-options.d.ts +13 -0
  256. package/dist/types/types/sync/commands/projects.d.ts +96 -0
  257. package/dist/types/types/sync/commands/reminders.d.ts +51 -0
  258. package/dist/types/types/sync/commands/sections.d.ts +36 -0
  259. package/dist/types/types/sync/commands/shared.d.ts +51 -0
  260. package/dist/types/types/sync/commands/sharing.d.ts +16 -0
  261. package/dist/types/types/sync/commands/tasks.d.ts +78 -0
  262. package/dist/types/types/sync/commands/view-options.d.ts +18 -0
  263. package/dist/types/types/sync/commands/workspace-filters.d.ts +25 -0
  264. package/dist/types/types/sync/commands/workspaces.d.ts +82 -0
  265. package/dist/types/types/sync/index.d.ts +6 -0
  266. package/dist/types/types/sync/request.d.ts +7 -0
  267. package/dist/types/types/sync/resource-types.d.ts +5 -0
  268. package/dist/types/types/sync/resources/calendars.d.ts +38 -0
  269. package/dist/types/types/sync/resources/collaborators.d.ts +45 -0
  270. package/dist/types/types/sync/resources/completed-info.d.ts +33 -0
  271. package/dist/types/types/sync/resources/filters.d.ts +13 -0
  272. package/dist/types/types/sync/resources/folders.d.ts +11 -0
  273. package/dist/types/types/sync/resources/index.d.ts +18 -0
  274. package/dist/types/types/sync/resources/labels.d.ts +12 -0
  275. package/dist/types/types/sync/resources/live-notifications.d.ts +32 -0
  276. package/dist/types/types/sync/resources/notes.d.ts +34 -0
  277. package/dist/types/types/sync/resources/reminders.d.ts +213 -0
  278. package/dist/types/types/sync/resources/suggestions.d.ts +96 -0
  279. package/dist/types/types/sync/resources/tooltips.d.ts +6 -0
  280. package/dist/types/types/sync/resources/user-plan-limits.d.ts +47 -0
  281. package/dist/types/types/sync/resources/user-settings.d.ts +40 -0
  282. package/dist/types/types/sync/resources/user-status.d.ts +46 -0
  283. package/dist/types/types/sync/resources/user.d.ts +151 -0
  284. package/dist/types/types/sync/resources/view-options.d.ts +157 -0
  285. package/dist/types/types/sync/resources/workspace-filters.d.ts +18 -0
  286. package/dist/types/types/sync/resources/workspaces.d.ts +142 -0
  287. package/dist/types/types/sync/response.d.ts +930 -0
  288. package/dist/types/types/sync/user-preferences.d.ts +39 -0
  289. package/dist/types/types/tasks/index.d.ts +2 -0
  290. package/dist/types/types/tasks/requests.d.ts +197 -0
  291. package/dist/types/types/tasks/types.d.ts +162 -0
  292. package/dist/types/types/templates/index.d.ts +1 -0
  293. package/dist/types/types/templates/requests.d.ts +92 -0
  294. package/dist/types/types/ui-extensions/index.d.ts +2 -0
  295. package/dist/types/types/ui-extensions/requests.d.ts +108 -0
  296. package/dist/types/types/ui-extensions/types.d.ts +185 -0
  297. package/dist/types/types/uploads/index.d.ts +1 -0
  298. package/dist/types/types/uploads/requests.d.ts +32 -0
  299. package/dist/types/types/users/index.d.ts +1 -0
  300. package/dist/types/types/users/types.d.ts +67 -0
  301. package/dist/types/types/webhooks/comments.d.ts +1600 -0
  302. package/dist/types/types/webhooks/envelope.d.ts +34 -0
  303. package/dist/types/types/webhooks/filters.d.ts +99 -0
  304. package/dist/types/types/webhooks/index.d.ts +9 -0
  305. package/dist/types/types/webhooks/labels.d.ts +160 -0
  306. package/dist/types/types/webhooks/projects.d.ts +365 -0
  307. package/dist/types/types/webhooks/reminders.d.ts +82 -0
  308. package/dist/types/types/webhooks/sections.d.ts +372 -0
  309. package/dist/types/types/webhooks/tasks.d.ts +981 -0
  310. package/dist/types/types/webhooks/types.d.ts +2606 -0
  311. package/dist/types/types/workspaces/index.d.ts +2 -0
  312. package/dist/types/types/workspaces/requests.d.ts +260 -0
  313. package/dist/types/types/workspaces/types.d.ts +266 -0
  314. package/dist/types/utils/activity-helpers.d.ts +28 -0
  315. package/dist/types/utils/case-conversion.d.ts +20 -0
  316. package/dist/types/utils/colors.d.ts +201 -0
  317. package/dist/types/utils/file-response.d.ts +15 -0
  318. package/dist/types/utils/filter-queries.d.ts +42 -0
  319. package/dist/types/utils/filter-query-definitions.d.ts +27 -0
  320. package/dist/types/utils/headers.d.ts +20 -0
  321. package/dist/types/utils/index.d.ts +15 -0
  322. package/dist/types/utils/multipart-upload.d.ts +58 -0
  323. package/dist/types/utils/person-names.d.ts +52 -0
  324. package/dist/types/utils/processing-helpers.d.ts +1 -0
  325. package/dist/types/utils/project-helpers.d.ts +21 -0
  326. package/dist/types/utils/request-helpers.d.ts +33 -0
  327. package/dist/types/utils/sanitization.d.ts +52 -0
  328. package/dist/types/utils/sync-helpers.d.ts +17 -0
  329. package/dist/types/utils/task-sorting.d.ts +46 -0
  330. package/dist/types/utils/uncompletable-helpers.d.ts +30 -0
  331. package/dist/types/utils/url-helpers.d.ts +120 -0
  332. package/dist/types/utils/validators.d.ts +1917 -0
  333. package/dist/types/utils/view-options.d.ts +11 -0
  334. package/dist/types/utils/webhook-parser.d.ts +48 -0
  335. package/package.json +87 -8
@@ -0,0 +1,1917 @@
1
+ import { z } from 'zod';
2
+ import { type SyncResponse } from '../types/sync/response.js';
3
+ export declare const IdSchema: z.ZodString;
4
+ export declare const validateTask: (input: unknown) => {
5
+ isUncompletable: boolean;
6
+ url: string;
7
+ id: string;
8
+ userId: string;
9
+ projectId: string;
10
+ sectionId: string | null;
11
+ parentId: string | null;
12
+ addedByUid: string | null;
13
+ assignedByUid: string | null;
14
+ responsibleUid: string | null;
15
+ labels: string[];
16
+ deadline: {
17
+ date: string;
18
+ lang: string;
19
+ } | null;
20
+ duration: {
21
+ amount: number;
22
+ unit: "minute" | "day";
23
+ } | null;
24
+ checked: boolean;
25
+ isDeleted: boolean;
26
+ addedAt: Date | null;
27
+ completedAt: Date | null;
28
+ updatedAt: Date | null;
29
+ due: {
30
+ isRecurring: boolean;
31
+ string: string;
32
+ date: string;
33
+ datetime?: string | null | undefined;
34
+ timezone?: string | null | undefined;
35
+ lang?: string | null | undefined;
36
+ } | null;
37
+ priority: number;
38
+ childOrder: number;
39
+ content: string;
40
+ description: string;
41
+ dayOrder: number;
42
+ isCollapsed: boolean;
43
+ }, validateTaskArray: (input: unknown) => {
44
+ isUncompletable: boolean;
45
+ url: string;
46
+ id: string;
47
+ userId: string;
48
+ projectId: string;
49
+ sectionId: string | null;
50
+ parentId: string | null;
51
+ addedByUid: string | null;
52
+ assignedByUid: string | null;
53
+ responsibleUid: string | null;
54
+ labels: string[];
55
+ deadline: {
56
+ date: string;
57
+ lang: string;
58
+ } | null;
59
+ duration: {
60
+ amount: number;
61
+ unit: "minute" | "day";
62
+ } | null;
63
+ checked: boolean;
64
+ isDeleted: boolean;
65
+ addedAt: Date | null;
66
+ completedAt: Date | null;
67
+ updatedAt: Date | null;
68
+ due: {
69
+ isRecurring: boolean;
70
+ string: string;
71
+ date: string;
72
+ datetime?: string | null | undefined;
73
+ timezone?: string | null | undefined;
74
+ lang?: string | null | undefined;
75
+ } | null;
76
+ priority: number;
77
+ childOrder: number;
78
+ content: string;
79
+ description: string;
80
+ dayOrder: number;
81
+ isCollapsed: boolean;
82
+ }[];
83
+ /**
84
+ * Validates and parses a project input.
85
+ * @param input The input to validate
86
+ * @returns A validated project (either PersonalProject or WorkspaceProject)
87
+ */
88
+ export declare const validateProject: (input: unknown) => {
89
+ url: string;
90
+ id: string;
91
+ canAssignTasks: boolean;
92
+ childOrder: number;
93
+ color: string;
94
+ createdAt: Date | null;
95
+ isArchived: boolean;
96
+ isDeleted: boolean;
97
+ isFavorite: boolean;
98
+ isFrozen: boolean;
99
+ name: string;
100
+ updatedAt: Date | null;
101
+ viewStyle: string;
102
+ defaultOrder: number;
103
+ description: string;
104
+ isCollapsed: boolean;
105
+ isShared: boolean;
106
+ parentId: string | null;
107
+ inboxProject: boolean;
108
+ orderKey?: string | null | undefined;
109
+ defaultOrderKey?: string | null | undefined;
110
+ } | {
111
+ url: string;
112
+ id: string;
113
+ canAssignTasks: boolean;
114
+ childOrder: number;
115
+ color: string;
116
+ createdAt: Date | null;
117
+ isArchived: boolean;
118
+ isDeleted: boolean;
119
+ isFavorite: boolean;
120
+ isFrozen: boolean;
121
+ name: string;
122
+ updatedAt: Date | null;
123
+ viewStyle: string;
124
+ defaultOrder: number;
125
+ description: string;
126
+ isCollapsed: boolean;
127
+ isShared: boolean;
128
+ collaboratorRoleDefault: string;
129
+ folderId: string | null;
130
+ isInviteOnly: boolean | null;
131
+ isLinkSharingEnabled: boolean;
132
+ role: string | null;
133
+ status: string;
134
+ workspaceId: string;
135
+ orderKey?: string | null | undefined;
136
+ defaultOrderKey?: string | null | undefined;
137
+ access?: {
138
+ visibility: "restricted" | "team" | "public";
139
+ } | undefined;
140
+ }, validateProjectArray: (input: unknown) => ({
141
+ url: string;
142
+ id: string;
143
+ canAssignTasks: boolean;
144
+ childOrder: number;
145
+ color: string;
146
+ createdAt: Date | null;
147
+ isArchived: boolean;
148
+ isDeleted: boolean;
149
+ isFavorite: boolean;
150
+ isFrozen: boolean;
151
+ name: string;
152
+ updatedAt: Date | null;
153
+ viewStyle: string;
154
+ defaultOrder: number;
155
+ description: string;
156
+ isCollapsed: boolean;
157
+ isShared: boolean;
158
+ parentId: string | null;
159
+ inboxProject: boolean;
160
+ orderKey?: string | null | undefined;
161
+ defaultOrderKey?: string | null | undefined;
162
+ } | {
163
+ url: string;
164
+ id: string;
165
+ canAssignTasks: boolean;
166
+ childOrder: number;
167
+ color: string;
168
+ createdAt: Date | null;
169
+ isArchived: boolean;
170
+ isDeleted: boolean;
171
+ isFavorite: boolean;
172
+ isFrozen: boolean;
173
+ name: string;
174
+ updatedAt: Date | null;
175
+ viewStyle: string;
176
+ defaultOrder: number;
177
+ description: string;
178
+ isCollapsed: boolean;
179
+ isShared: boolean;
180
+ collaboratorRoleDefault: string;
181
+ folderId: string | null;
182
+ isInviteOnly: boolean | null;
183
+ isLinkSharingEnabled: boolean;
184
+ role: string | null;
185
+ status: string;
186
+ workspaceId: string;
187
+ orderKey?: string | null | undefined;
188
+ defaultOrderKey?: string | null | undefined;
189
+ access?: {
190
+ visibility: "restricted" | "team" | "public";
191
+ } | undefined;
192
+ })[];
193
+ export declare const validateWorkspaceProject: (input: unknown) => {
194
+ url: string;
195
+ id: string;
196
+ canAssignTasks: boolean;
197
+ childOrder: number;
198
+ color: string;
199
+ createdAt: Date | null;
200
+ isArchived: boolean;
201
+ isDeleted: boolean;
202
+ isFavorite: boolean;
203
+ isFrozen: boolean;
204
+ name: string;
205
+ updatedAt: Date | null;
206
+ viewStyle: string;
207
+ defaultOrder: number;
208
+ description: string;
209
+ isCollapsed: boolean;
210
+ isShared: boolean;
211
+ collaboratorRoleDefault: string;
212
+ folderId: string | null;
213
+ isInviteOnly: boolean | null;
214
+ isLinkSharingEnabled: boolean;
215
+ role: string | null;
216
+ status: string;
217
+ workspaceId: string;
218
+ orderKey?: string | null | undefined;
219
+ defaultOrderKey?: string | null | undefined;
220
+ access?: {
221
+ visibility: "restricted" | "team" | "public";
222
+ } | undefined;
223
+ }, validateWorkspaceProjectArray: (input: unknown) => {
224
+ url: string;
225
+ id: string;
226
+ canAssignTasks: boolean;
227
+ childOrder: number;
228
+ color: string;
229
+ createdAt: Date | null;
230
+ isArchived: boolean;
231
+ isDeleted: boolean;
232
+ isFavorite: boolean;
233
+ isFrozen: boolean;
234
+ name: string;
235
+ updatedAt: Date | null;
236
+ viewStyle: string;
237
+ defaultOrder: number;
238
+ description: string;
239
+ isCollapsed: boolean;
240
+ isShared: boolean;
241
+ collaboratorRoleDefault: string;
242
+ folderId: string | null;
243
+ isInviteOnly: boolean | null;
244
+ isLinkSharingEnabled: boolean;
245
+ role: string | null;
246
+ status: string;
247
+ workspaceId: string;
248
+ orderKey?: string | null | undefined;
249
+ defaultOrderKey?: string | null | undefined;
250
+ access?: {
251
+ visibility: "restricted" | "team" | "public";
252
+ } | undefined;
253
+ }[];
254
+ export declare const validateSection: (input: unknown) => {
255
+ url: string;
256
+ id: string;
257
+ userId: string;
258
+ projectId: string;
259
+ addedAt: Date;
260
+ updatedAt: Date;
261
+ archivedAt: Date | null;
262
+ name: string;
263
+ description: string | null;
264
+ sectionOrder: number;
265
+ isArchived: boolean;
266
+ isDeleted: boolean;
267
+ isCollapsed: boolean;
268
+ orderKey?: string | null | undefined;
269
+ }, validateSectionArray: (input: unknown) => {
270
+ url: string;
271
+ id: string;
272
+ userId: string;
273
+ projectId: string;
274
+ addedAt: Date;
275
+ updatedAt: Date;
276
+ archivedAt: Date | null;
277
+ name: string;
278
+ description: string | null;
279
+ sectionOrder: number;
280
+ isArchived: boolean;
281
+ isDeleted: boolean;
282
+ isCollapsed: boolean;
283
+ orderKey?: string | null | undefined;
284
+ }[];
285
+ export declare const validateLabel: (input: unknown) => {
286
+ id: string;
287
+ order: number | null;
288
+ name: string;
289
+ color: string;
290
+ isFavorite: boolean;
291
+ }, validateLabelArray: (input: unknown) => {
292
+ id: string;
293
+ order: number | null;
294
+ name: string;
295
+ color: string;
296
+ isFavorite: boolean;
297
+ }[];
298
+ export declare const validateComment: (input: unknown) => {
299
+ taskId: string | undefined;
300
+ id: string;
301
+ content: string;
302
+ postedAt: Date;
303
+ fileAttachment: {
304
+ resourceType: string;
305
+ fileName?: string | null | undefined;
306
+ fileSize?: number | null | undefined;
307
+ fileType?: string | null | undefined;
308
+ fileUrl?: string | null | undefined;
309
+ fileDuration?: number | null | undefined;
310
+ uploadState?: "pending" | "completed" | null | undefined;
311
+ image?: string | null | undefined;
312
+ imageWidth?: number | null | undefined;
313
+ imageHeight?: number | null | undefined;
314
+ url?: string | null | undefined;
315
+ title?: string | null | undefined;
316
+ } | null;
317
+ postedUid: string;
318
+ uidsToNotify: string[] | null;
319
+ reactions: Record<string, string[]> | null;
320
+ isDeleted: boolean;
321
+ projectId?: string | undefined;
322
+ }, validateCommentArray: (input: unknown) => {
323
+ taskId: string | undefined;
324
+ id: string;
325
+ content: string;
326
+ postedAt: Date;
327
+ fileAttachment: {
328
+ resourceType: string;
329
+ fileName?: string | null | undefined;
330
+ fileSize?: number | null | undefined;
331
+ fileType?: string | null | undefined;
332
+ fileUrl?: string | null | undefined;
333
+ fileDuration?: number | null | undefined;
334
+ uploadState?: "pending" | "completed" | null | undefined;
335
+ image?: string | null | undefined;
336
+ imageWidth?: number | null | undefined;
337
+ imageHeight?: number | null | undefined;
338
+ url?: string | null | undefined;
339
+ title?: string | null | undefined;
340
+ } | null;
341
+ postedUid: string;
342
+ uidsToNotify: string[] | null;
343
+ reactions: Record<string, string[]> | null;
344
+ isDeleted: boolean;
345
+ projectId?: string | undefined;
346
+ }[];
347
+ export declare const validateUser: (input: unknown) => {
348
+ id: string;
349
+ name: string;
350
+ email: string;
351
+ }, validateUserArray: (input: unknown) => {
352
+ id: string;
353
+ name: string;
354
+ email: string;
355
+ }[];
356
+ export declare const validateProductivityStats: (input: unknown) => {
357
+ completedCount: number;
358
+ daysItems: {
359
+ items: {
360
+ id: string;
361
+ completed: number;
362
+ }[];
363
+ totalCompleted: number;
364
+ date: string;
365
+ }[];
366
+ goals: {
367
+ currentDailyStreak: {
368
+ count: number;
369
+ start: string;
370
+ end: string;
371
+ };
372
+ currentWeeklyStreak: {
373
+ count: number;
374
+ start: string;
375
+ end: string;
376
+ };
377
+ dailyGoal: number;
378
+ ignoreDays: ("Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday")[];
379
+ karmaDisabled: boolean;
380
+ lastDailyStreak: {
381
+ count: number;
382
+ start: string;
383
+ end: string;
384
+ };
385
+ lastWeeklyStreak: {
386
+ count: number;
387
+ start: string;
388
+ end: string;
389
+ };
390
+ maxDailyStreak: {
391
+ count: number;
392
+ start: string;
393
+ end: string;
394
+ };
395
+ maxWeeklyStreak: {
396
+ count: number;
397
+ start: string;
398
+ end: string;
399
+ };
400
+ user: string;
401
+ userId: string;
402
+ vacationMode: boolean;
403
+ weeklyGoal: number;
404
+ };
405
+ karma: number;
406
+ karmaGraphData: {
407
+ date: string;
408
+ karmaAvg: number;
409
+ }[];
410
+ karmaLastUpdate: number;
411
+ karmaTrend: string;
412
+ karmaUpdateReasons: {
413
+ time: string;
414
+ newKarma: number;
415
+ positiveKarma: number;
416
+ negativeKarma: number;
417
+ positiveKarmaReasons: any[];
418
+ negativeKarmaReasons: any[];
419
+ }[];
420
+ projectColors: Record<string, string>;
421
+ weekItems: {
422
+ items: {
423
+ id: string;
424
+ completed: number;
425
+ }[];
426
+ totalCompleted: number;
427
+ from: string;
428
+ to: string;
429
+ }[];
430
+ };
431
+ export declare const validateCurrentUser: (input: unknown) => {
432
+ id: string;
433
+ email: string;
434
+ fullName: string;
435
+ businessAccountId: string | null;
436
+ isPremium: boolean;
437
+ premiumStatus: "not_premium" | "current_personal_plan" | "legacy_personal_plan" | "teams_business_member";
438
+ dateFormat: number;
439
+ timeFormat: number;
440
+ weeklyGoal: number;
441
+ dailyGoal: number;
442
+ completedCount: number;
443
+ completedToday: number;
444
+ karma: number;
445
+ karmaTrend: string;
446
+ lang: string;
447
+ nextWeek: number;
448
+ startDay: number;
449
+ startPage: string;
450
+ tzInfo: {
451
+ gmtString: string;
452
+ hours: number;
453
+ isDst: number;
454
+ minutes: number;
455
+ timezone: string;
456
+ };
457
+ inboxProjectId: string;
458
+ daysOff: number[];
459
+ weekendStartDay: number;
460
+ avatarBig?: string | null | undefined;
461
+ avatarMedium?: string | null | undefined;
462
+ avatarS640?: string | null | undefined;
463
+ avatarSmall?: string | null | undefined;
464
+ websocketUrl?: string | undefined;
465
+ };
466
+ export declare const validateActivityEvent: (input: unknown) => {
467
+ [x: string]: any;
468
+ objectType: string;
469
+ objectId: string;
470
+ eventType: string;
471
+ eventDate: Date;
472
+ id: string | null;
473
+ parentProjectId: string | null;
474
+ parentItemId: string | null;
475
+ initiatorId: string | null;
476
+ extraData: Record<string, any> | null;
477
+ }, validateActivityEventArray: (input: unknown) => {
478
+ [x: string]: any;
479
+ objectType: string;
480
+ objectId: string;
481
+ eventType: string;
482
+ eventDate: Date;
483
+ id: string | null;
484
+ parentProjectId: string | null;
485
+ parentItemId: string | null;
486
+ initiatorId: string | null;
487
+ extraData: Record<string, any> | null;
488
+ }[];
489
+ export declare const validateAttachment: (input: unknown) => {
490
+ resourceType: string;
491
+ fileName?: string | null | undefined;
492
+ fileSize?: number | null | undefined;
493
+ fileType?: string | null | undefined;
494
+ fileUrl?: string | null | undefined;
495
+ fileDuration?: number | null | undefined;
496
+ uploadState?: "pending" | "completed" | null | undefined;
497
+ image?: string | null | undefined;
498
+ imageWidth?: number | null | undefined;
499
+ imageHeight?: number | null | undefined;
500
+ url?: string | null | undefined;
501
+ title?: string | null | undefined;
502
+ };
503
+ export declare const validateWorkspaceUser: (input: unknown) => {
504
+ userId: string;
505
+ workspaceId: string;
506
+ userEmail: string;
507
+ fullName: string;
508
+ timezone: string;
509
+ role: "ADMIN" | "MEMBER" | "GUEST";
510
+ imageId: string | null;
511
+ isDeleted: boolean;
512
+ }, validateWorkspaceUserArray: (input: unknown) => {
513
+ userId: string;
514
+ workspaceId: string;
515
+ userEmail: string;
516
+ fullName: string;
517
+ timezone: string;
518
+ role: "ADMIN" | "MEMBER" | "GUEST";
519
+ imageId: string | null;
520
+ isDeleted: boolean;
521
+ }[];
522
+ export declare const validateWorkspaceInvitation: (input: unknown) => {
523
+ id: string;
524
+ inviterId: string;
525
+ userEmail: string;
526
+ workspaceId: string;
527
+ role: "ADMIN" | "MEMBER" | "GUEST";
528
+ }, validateWorkspaceInvitationArray: (input: unknown) => {
529
+ id: string;
530
+ inviterId: string;
531
+ userEmail: string;
532
+ workspaceId: string;
533
+ role: "ADMIN" | "MEMBER" | "GUEST";
534
+ }[];
535
+ export declare const validateWorkspacePlanDetails: (input: unknown) => {
536
+ currentMemberCount: number;
537
+ currentPlan: "Business" | "Starter";
538
+ currentPlanStatus: "Active" | "Downgraded" | "Cancelled" | "NeverSubscribed";
539
+ downgradeAt: string | null;
540
+ currentActiveProjects: number;
541
+ maximumActiveProjects: number;
542
+ priceList: {
543
+ currency?: string | undefined;
544
+ amount?: number | undefined;
545
+ interval?: string | undefined;
546
+ formatted?: string | undefined;
547
+ }[];
548
+ workspaceId: string;
549
+ isTrialing: boolean;
550
+ trialEndsAt: string | null;
551
+ cancelAtPeriodEnd: boolean;
552
+ hasTrialed: boolean;
553
+ planPrice: {
554
+ currency: string;
555
+ amount: string | number;
556
+ interval?: string | undefined;
557
+ } | null;
558
+ hasBillingPortal: boolean;
559
+ hasBillingPortalSwitchToAnnual: boolean;
560
+ };
561
+ export declare const validateJoinWorkspaceResult: (input: unknown) => {
562
+ customSortingApplied: boolean;
563
+ projectSortPreference: string;
564
+ role: "ADMIN" | "MEMBER" | "GUEST";
565
+ userId: string;
566
+ workspaceId: string;
567
+ };
568
+ export declare const validateWorkspace: (input: unknown) => {
569
+ createdAt: Date | undefined;
570
+ id: string;
571
+ name: string;
572
+ plan: "STARTER" | "BUSINESS";
573
+ inviteCode: string;
574
+ isLinkSharingEnabled: boolean;
575
+ isGuestAllowed: boolean;
576
+ creatorId: string;
577
+ properties: Record<string, unknown>;
578
+ role?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
579
+ limits?: {
580
+ [x: string]: any;
581
+ current: Record<string, any> | null;
582
+ next: Record<string, any> | null;
583
+ } | undefined;
584
+ logoBig?: string | null | undefined;
585
+ logoMedium?: string | null | undefined;
586
+ logoSmall?: string | null | undefined;
587
+ logoS640?: string | null | undefined;
588
+ }, validateWorkspaceArray: (input: unknown) => {
589
+ createdAt: Date | undefined;
590
+ id: string;
591
+ name: string;
592
+ plan: "STARTER" | "BUSINESS";
593
+ inviteCode: string;
594
+ isLinkSharingEnabled: boolean;
595
+ isGuestAllowed: boolean;
596
+ creatorId: string;
597
+ properties: Record<string, unknown>;
598
+ role?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
599
+ limits?: {
600
+ [x: string]: any;
601
+ current: Record<string, any> | null;
602
+ next: Record<string, any> | null;
603
+ } | undefined;
604
+ logoBig?: string | null | undefined;
605
+ logoMedium?: string | null | undefined;
606
+ logoSmall?: string | null | undefined;
607
+ logoS640?: string | null | undefined;
608
+ }[];
609
+ export declare const validateMemberActivityInfo: (input: unknown) => {
610
+ userId: string;
611
+ tasksAssigned: number;
612
+ tasksOverdue: number;
613
+ }, validateMemberActivityInfoArray: (input: unknown) => {
614
+ userId: string;
615
+ tasksAssigned: number;
616
+ tasksOverdue: number;
617
+ }[];
618
+ export declare const validateWorkspaceUserTask: (input: unknown) => {
619
+ id: string;
620
+ content: string;
621
+ responsibleUid: string | null;
622
+ due: {
623
+ isRecurring: boolean;
624
+ string: string;
625
+ date: string;
626
+ datetime?: string | null | undefined;
627
+ timezone?: string | null | undefined;
628
+ lang?: string | null | undefined;
629
+ } | null;
630
+ deadline: {
631
+ date: string;
632
+ lang: string;
633
+ } | null;
634
+ labels: string[];
635
+ notesCount: number;
636
+ projectId: string;
637
+ projectName: string;
638
+ priority: number;
639
+ description: string;
640
+ isOverdue: boolean;
641
+ }, validateWorkspaceUserTaskArray: (input: unknown) => {
642
+ id: string;
643
+ content: string;
644
+ responsibleUid: string | null;
645
+ due: {
646
+ isRecurring: boolean;
647
+ string: string;
648
+ date: string;
649
+ datetime?: string | null | undefined;
650
+ timezone?: string | null | undefined;
651
+ lang?: string | null | undefined;
652
+ } | null;
653
+ deadline: {
654
+ date: string;
655
+ lang: string;
656
+ } | null;
657
+ labels: string[];
658
+ notesCount: number;
659
+ projectId: string;
660
+ projectName: string;
661
+ priority: number;
662
+ description: string;
663
+ isOverdue: boolean;
664
+ }[];
665
+ export declare const validateProjectActivityStats: (input: unknown) => {
666
+ dayItems: {
667
+ date: string;
668
+ totalCount: number;
669
+ }[];
670
+ weekItems: {
671
+ fromDate: string;
672
+ toDate: string;
673
+ totalCount: number;
674
+ }[] | null;
675
+ };
676
+ export declare const validateProjectHealth: (input: unknown) => {
677
+ status: "UNKNOWN" | "ON_TRACK" | "AT_RISK" | "CRITICAL" | "EXCELLENT" | "ERROR";
678
+ isStale: boolean;
679
+ updateInProgress: boolean;
680
+ description?: string | null | undefined;
681
+ descriptionSummary?: string | null | undefined;
682
+ projectId?: string | null | undefined;
683
+ updatedAt?: Date | null | undefined;
684
+ };
685
+ export declare const validateProjectHealthContext: (input: unknown) => {
686
+ projectId: string;
687
+ projectName: string;
688
+ projectDescription: string | null;
689
+ projectMetrics: {
690
+ totalTasks: number;
691
+ completedTasks: number;
692
+ overdueTasks: number;
693
+ tasksCreatedThisWeek: number;
694
+ tasksCompletedThisWeek: number;
695
+ averageCompletionTime: number | null;
696
+ };
697
+ tasks: {
698
+ id: string;
699
+ content: string;
700
+ priority: string;
701
+ isCompleted: boolean;
702
+ createdAt: Date;
703
+ updatedAt: Date;
704
+ completedAt: Date | null;
705
+ completedByUid: string | null;
706
+ labels: string[];
707
+ due?: string | null | undefined;
708
+ deadline?: string | null | undefined;
709
+ }[];
710
+ language?: string | null | undefined;
711
+ };
712
+ export declare const validateProjectProgress: (input: unknown) => {
713
+ projectId: string;
714
+ completedCount: number;
715
+ activeCount: number;
716
+ progressPercent: number;
717
+ };
718
+ export declare const validateWorkspaceInsights: (input: unknown) => {
719
+ projectInsights: {
720
+ projectId: string;
721
+ health: {
722
+ status: "UNKNOWN" | "ON_TRACK" | "AT_RISK" | "CRITICAL" | "EXCELLENT" | "ERROR";
723
+ isStale: boolean;
724
+ updateInProgress: boolean;
725
+ description?: string | null | undefined;
726
+ descriptionSummary?: string | null | undefined;
727
+ projectId?: string | null | undefined;
728
+ updatedAt?: Date | null | undefined;
729
+ } | null;
730
+ progress: {
731
+ projectId: string;
732
+ completedCount: number;
733
+ activeCount: number;
734
+ progressPercent: number;
735
+ } | null;
736
+ }[];
737
+ };
738
+ export declare const validateBackup: (input: unknown) => {
739
+ version: string;
740
+ url: string;
741
+ }, validateBackupArray: (input: unknown) => {
742
+ version: string;
743
+ url: string;
744
+ }[];
745
+ export declare const validateIdMapping: (input: unknown) => {
746
+ oldId: string | null;
747
+ newId: string | null;
748
+ }, validateIdMappingArray: (input: unknown) => {
749
+ oldId: string | null;
750
+ newId: string | null;
751
+ }[];
752
+ export declare const validateMovedId: (input: unknown) => {
753
+ oldId: string;
754
+ newId: string;
755
+ }, validateMovedIdArray: (input: unknown) => {
756
+ oldId: string;
757
+ newId: string;
758
+ }[];
759
+ export declare const validateFilter: (input: unknown) => {
760
+ [x: string]: unknown;
761
+ id: string;
762
+ name: string;
763
+ query: string;
764
+ color: string;
765
+ isDeleted: boolean;
766
+ isFavorite: boolean;
767
+ isFrozen: boolean;
768
+ itemOrder: number;
769
+ description?: string | null | undefined;
770
+ }, validateFilterArray: (input: unknown) => {
771
+ [x: string]: unknown;
772
+ id: string;
773
+ name: string;
774
+ query: string;
775
+ color: string;
776
+ isDeleted: boolean;
777
+ isFavorite: boolean;
778
+ isFrozen: boolean;
779
+ itemOrder: number;
780
+ description?: string | null | undefined;
781
+ }[];
782
+ export declare const validateCollaborator: (input: unknown) => {
783
+ [x: string]: unknown;
784
+ id: string;
785
+ email: string;
786
+ fullName: string;
787
+ timezone: string;
788
+ imageId: string | null;
789
+ status?: {
790
+ [x: string]: unknown;
791
+ message: string;
792
+ effects: {
793
+ [x: string]: unknown;
794
+ pauseNotifications?: {
795
+ [x: string]: unknown;
796
+ scope?: {
797
+ [x: string]: unknown;
798
+ mode: string;
799
+ } | undefined;
800
+ } | undefined;
801
+ pauseActivity?: {
802
+ [x: string]: unknown;
803
+ scope?: {
804
+ [x: string]: unknown;
805
+ mode: string;
806
+ } | undefined;
807
+ } | undefined;
808
+ };
809
+ emoji?: string | null | undefined;
810
+ activeUntil?: Date | null | undefined;
811
+ } | null | undefined;
812
+ }, validateCollaboratorArray: (input: unknown) => {
813
+ [x: string]: unknown;
814
+ id: string;
815
+ email: string;
816
+ fullName: string;
817
+ timezone: string;
818
+ imageId: string | null;
819
+ status?: {
820
+ [x: string]: unknown;
821
+ message: string;
822
+ effects: {
823
+ [x: string]: unknown;
824
+ pauseNotifications?: {
825
+ [x: string]: unknown;
826
+ scope?: {
827
+ [x: string]: unknown;
828
+ mode: string;
829
+ } | undefined;
830
+ } | undefined;
831
+ pauseActivity?: {
832
+ [x: string]: unknown;
833
+ scope?: {
834
+ [x: string]: unknown;
835
+ mode: string;
836
+ } | undefined;
837
+ } | undefined;
838
+ };
839
+ emoji?: string | null | undefined;
840
+ activeUntil?: Date | null | undefined;
841
+ } | null | undefined;
842
+ }[];
843
+ export declare const validateCollaboratorState: (input: unknown) => {
844
+ [x: string]: unknown;
845
+ userId: string;
846
+ projectId: string;
847
+ state: "active" | "invited";
848
+ isDeleted: boolean;
849
+ workspaceRole?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
850
+ }, validateCollaboratorStateArray: (input: unknown) => {
851
+ [x: string]: unknown;
852
+ userId: string;
853
+ projectId: string;
854
+ state: "active" | "invited";
855
+ isDeleted: boolean;
856
+ workspaceRole?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
857
+ }[];
858
+ export declare const validateFolder: (input: unknown) => {
859
+ [x: string]: unknown;
860
+ id: string;
861
+ name: string;
862
+ workspaceId: string;
863
+ isDeleted: boolean;
864
+ defaultOrder: number;
865
+ childOrder: number;
866
+ defaultOrderKey?: string | null | undefined;
867
+ }, validateFolderArray: (input: unknown) => {
868
+ [x: string]: unknown;
869
+ id: string;
870
+ name: string;
871
+ workspaceId: string;
872
+ isDeleted: boolean;
873
+ defaultOrder: number;
874
+ childOrder: number;
875
+ defaultOrderKey?: string | null | undefined;
876
+ }[];
877
+ export declare const validateSubscriptionInfo: (input: unknown) => {
878
+ status: "none" | "autorenew" | "canceled" | "expired" | "trial" | "trial_canceled";
879
+ plan: "free" | "pro" | "pro_gifted" | "pro_legacy";
880
+ expirationDate: string | null;
881
+ activationMethod: "manual" | "stripe" | "appstore" | "playstore" | "teams";
882
+ planPrice: {
883
+ amount: string;
884
+ rawAmount: number;
885
+ currency: string;
886
+ billingCycle: "monthly" | "yearly" | null;
887
+ taxBehavior: "inclusive" | "exclusive" | "unspecified";
888
+ } | null;
889
+ billingPortalUrl: string | null;
890
+ billingPortalSwitchToAnnualUrl: string | null;
891
+ hasBillingPortal: boolean;
892
+ hasBillingPortalSwitchToAnnual: boolean;
893
+ invoiceCreditBalance: Record<string, number> | null;
894
+ hasSwitchLegacyToCurrent: boolean;
895
+ };
896
+ export declare const validateProPlanDetails: (input: unknown) => {
897
+ currentPlanStatus: "Active" | "Downgraded" | "Cancelled" | "NeverSubscribed";
898
+ downgradeAt: string | null;
899
+ priceList: {
900
+ billingCycle: "monthly" | "yearly";
901
+ prices: {
902
+ currency: string;
903
+ unitAmount: number;
904
+ taxBehavior: "inclusive" | "exclusive" | "unspecified";
905
+ }[];
906
+ }[];
907
+ };
908
+ export declare const validatePrices: (input: unknown) => {
909
+ pro: {
910
+ billingCycle: "monthly" | "yearly";
911
+ prices: {
912
+ currency: string;
913
+ unitAmount: number;
914
+ taxBehavior: "inclusive" | "exclusive" | "unspecified";
915
+ }[];
916
+ }[];
917
+ teams: {
918
+ billingCycle: "monthly" | "yearly";
919
+ prices: {
920
+ currency: string;
921
+ unitAmount: number;
922
+ taxBehavior: "inclusive" | "exclusive" | "unspecified";
923
+ }[];
924
+ }[];
925
+ };
926
+ export declare const validatePricing: (input: unknown) => {
927
+ [x: string]: Record<string, Record<string, {
928
+ monthly: string | number;
929
+ yearly: string | number;
930
+ }>>;
931
+ latestPro: string;
932
+ latestBiz: string;
933
+ sessionPro: string;
934
+ sessionBiz: string;
935
+ };
936
+ export declare const validateNote: (input: unknown) => {
937
+ [x: string]: unknown;
938
+ id: string;
939
+ content: string;
940
+ postedAt: Date;
941
+ fileAttachment: {
942
+ resourceType: string;
943
+ fileName?: string | null | undefined;
944
+ fileSize?: number | null | undefined;
945
+ fileType?: string | null | undefined;
946
+ fileUrl?: string | null | undefined;
947
+ fileDuration?: number | null | undefined;
948
+ uploadState?: "pending" | "completed" | null | undefined;
949
+ image?: string | null | undefined;
950
+ imageWidth?: number | null | undefined;
951
+ imageHeight?: number | null | undefined;
952
+ url?: string | null | undefined;
953
+ title?: string | null | undefined;
954
+ } | null;
955
+ postedUid: string;
956
+ uidsToNotify: string[] | null;
957
+ reactions: Record<string, string[]> | null;
958
+ isDeleted: boolean;
959
+ itemId?: string | undefined;
960
+ projectId?: string | undefined;
961
+ }, validateNoteArray: (input: unknown) => {
962
+ [x: string]: unknown;
963
+ id: string;
964
+ content: string;
965
+ postedAt: Date;
966
+ fileAttachment: {
967
+ resourceType: string;
968
+ fileName?: string | null | undefined;
969
+ fileSize?: number | null | undefined;
970
+ fileType?: string | null | undefined;
971
+ fileUrl?: string | null | undefined;
972
+ fileDuration?: number | null | undefined;
973
+ uploadState?: "pending" | "completed" | null | undefined;
974
+ image?: string | null | undefined;
975
+ imageWidth?: number | null | undefined;
976
+ imageHeight?: number | null | undefined;
977
+ url?: string | null | undefined;
978
+ title?: string | null | undefined;
979
+ } | null;
980
+ postedUid: string;
981
+ uidsToNotify: string[] | null;
982
+ reactions: Record<string, string[]> | null;
983
+ isDeleted: boolean;
984
+ itemId?: string | undefined;
985
+ projectId?: string | undefined;
986
+ }[];
987
+ export declare const validateTooltips: (input: unknown) => {
988
+ [x: string]: unknown;
989
+ seen?: string[] | undefined;
990
+ scheduled?: string[] | undefined;
991
+ };
992
+ export declare const validateWorkspaceFilter: (input: unknown) => {
993
+ [x: string]: unknown;
994
+ id: string;
995
+ workspaceId: string;
996
+ name: string;
997
+ query: string;
998
+ color: string;
999
+ itemOrder: number;
1000
+ isDeleted: boolean;
1001
+ isFavorite: boolean;
1002
+ isFrozen: boolean;
1003
+ creatorUid: string;
1004
+ updaterUid: string;
1005
+ createdAt: Date;
1006
+ updatedAt: Date;
1007
+ description?: string | null | undefined;
1008
+ }, validateWorkspaceFilterArray: (input: unknown) => {
1009
+ [x: string]: unknown;
1010
+ id: string;
1011
+ workspaceId: string;
1012
+ name: string;
1013
+ query: string;
1014
+ color: string;
1015
+ itemOrder: number;
1016
+ isDeleted: boolean;
1017
+ isFavorite: boolean;
1018
+ isFrozen: boolean;
1019
+ creatorUid: string;
1020
+ updaterUid: string;
1021
+ createdAt: Date;
1022
+ updatedAt: Date;
1023
+ description?: string | null | undefined;
1024
+ }[];
1025
+ export declare const validateCalendar: (input: unknown) => {
1026
+ [x: string]: unknown;
1027
+ id: string;
1028
+ summary: string;
1029
+ color: string | null;
1030
+ accountId: string;
1031
+ isVisible: boolean;
1032
+ isTaskCalendar?: boolean | undefined;
1033
+ }, validateCalendarArray: (input: unknown) => {
1034
+ [x: string]: unknown;
1035
+ id: string;
1036
+ summary: string;
1037
+ color: string | null;
1038
+ accountId: string;
1039
+ isVisible: boolean;
1040
+ isTaskCalendar?: boolean | undefined;
1041
+ }[];
1042
+ export declare const validateCalendarAccount: (input: unknown) => {
1043
+ [x: string]: unknown;
1044
+ id: string;
1045
+ name: string;
1046
+ type: "google" | "microsoft" | "apple";
1047
+ isDeleted?: boolean | undefined;
1048
+ isEventsEnabled?: boolean | undefined;
1049
+ isTasksEnabled?: boolean | undefined;
1050
+ isAllDayTasksEnabled?: boolean | undefined;
1051
+ pendingOperationUntil?: string | null | undefined;
1052
+ calendarsSyncState?: "error" | "synced" | "syncing" | undefined;
1053
+ }, validateCalendarAccountArray: (input: unknown) => {
1054
+ [x: string]: unknown;
1055
+ id: string;
1056
+ name: string;
1057
+ type: "google" | "microsoft" | "apple";
1058
+ isDeleted?: boolean | undefined;
1059
+ isEventsEnabled?: boolean | undefined;
1060
+ isTasksEnabled?: boolean | undefined;
1061
+ isAllDayTasksEnabled?: boolean | undefined;
1062
+ pendingOperationUntil?: string | null | undefined;
1063
+ calendarsSyncState?: "error" | "synced" | "syncing" | undefined;
1064
+ }[];
1065
+ export declare const validateReminder: (input: unknown) => {
1066
+ [x: string]: unknown;
1067
+ id: string;
1068
+ notifyUid: string;
1069
+ itemId: string;
1070
+ isDeleted: boolean;
1071
+ type: "location";
1072
+ name: string;
1073
+ locLat: string;
1074
+ locLong: string;
1075
+ locTrigger: "on_enter" | "on_leave";
1076
+ radius: number;
1077
+ projectId?: string | undefined;
1078
+ } | {
1079
+ [x: string]: unknown;
1080
+ id: string;
1081
+ notifyUid: string;
1082
+ itemId: string;
1083
+ isDeleted: boolean;
1084
+ type: "absolute";
1085
+ due: {
1086
+ isRecurring: boolean;
1087
+ string: string;
1088
+ date: string;
1089
+ datetime?: string | null | undefined;
1090
+ timezone?: string | null | undefined;
1091
+ lang?: string | null | undefined;
1092
+ };
1093
+ projectId?: string | undefined;
1094
+ isUrgent?: boolean | undefined;
1095
+ } | {
1096
+ [x: string]: unknown;
1097
+ id: string;
1098
+ notifyUid: string;
1099
+ itemId: string;
1100
+ isDeleted: boolean;
1101
+ type: "relative";
1102
+ minuteOffset: number;
1103
+ projectId?: string | undefined;
1104
+ due?: {
1105
+ isRecurring: boolean;
1106
+ string: string;
1107
+ date: string;
1108
+ datetime?: string | null | undefined;
1109
+ timezone?: string | null | undefined;
1110
+ lang?: string | null | undefined;
1111
+ } | undefined;
1112
+ isUrgent?: boolean | undefined;
1113
+ }, validateReminderArray: (input: unknown) => ({
1114
+ [x: string]: unknown;
1115
+ id: string;
1116
+ notifyUid: string;
1117
+ itemId: string;
1118
+ isDeleted: boolean;
1119
+ type: "location";
1120
+ name: string;
1121
+ locLat: string;
1122
+ locLong: string;
1123
+ locTrigger: "on_enter" | "on_leave";
1124
+ radius: number;
1125
+ projectId?: string | undefined;
1126
+ } | {
1127
+ [x: string]: unknown;
1128
+ id: string;
1129
+ notifyUid: string;
1130
+ itemId: string;
1131
+ isDeleted: boolean;
1132
+ type: "absolute";
1133
+ due: {
1134
+ isRecurring: boolean;
1135
+ string: string;
1136
+ date: string;
1137
+ datetime?: string | null | undefined;
1138
+ timezone?: string | null | undefined;
1139
+ lang?: string | null | undefined;
1140
+ };
1141
+ projectId?: string | undefined;
1142
+ isUrgent?: boolean | undefined;
1143
+ } | {
1144
+ [x: string]: unknown;
1145
+ id: string;
1146
+ notifyUid: string;
1147
+ itemId: string;
1148
+ isDeleted: boolean;
1149
+ type: "relative";
1150
+ minuteOffset: number;
1151
+ projectId?: string | undefined;
1152
+ due?: {
1153
+ isRecurring: boolean;
1154
+ string: string;
1155
+ date: string;
1156
+ datetime?: string | null | undefined;
1157
+ timezone?: string | null | undefined;
1158
+ lang?: string | null | undefined;
1159
+ } | undefined;
1160
+ isUrgent?: boolean | undefined;
1161
+ })[];
1162
+ export declare const validateLocationReminder: (input: unknown) => {
1163
+ [x: string]: unknown;
1164
+ id: string;
1165
+ notifyUid: string;
1166
+ itemId: string;
1167
+ isDeleted: boolean;
1168
+ type: "location";
1169
+ name: string;
1170
+ locLat: string;
1171
+ locLong: string;
1172
+ locTrigger: "on_enter" | "on_leave";
1173
+ radius: number;
1174
+ projectId?: string | undefined;
1175
+ }, validateLocationReminderArray: (input: unknown) => {
1176
+ [x: string]: unknown;
1177
+ id: string;
1178
+ notifyUid: string;
1179
+ itemId: string;
1180
+ isDeleted: boolean;
1181
+ type: "location";
1182
+ name: string;
1183
+ locLat: string;
1184
+ locLong: string;
1185
+ locTrigger: "on_enter" | "on_leave";
1186
+ radius: number;
1187
+ projectId?: string | undefined;
1188
+ }[];
1189
+ export declare const validateCompletedInfo: (input: unknown) => {
1190
+ [x: string]: unknown;
1191
+ projectId: string;
1192
+ archivedSections: number;
1193
+ completedItems: number;
1194
+ } | {
1195
+ [x: string]: unknown;
1196
+ sectionId: string;
1197
+ id: string;
1198
+ completedItems: number;
1199
+ } | {
1200
+ [x: string]: unknown;
1201
+ itemId: string;
1202
+ completedItems: number;
1203
+ id?: string | undefined;
1204
+ }, validateCompletedInfoArray: (input: unknown) => ({
1205
+ [x: string]: unknown;
1206
+ projectId: string;
1207
+ archivedSections: number;
1208
+ completedItems: number;
1209
+ } | {
1210
+ [x: string]: unknown;
1211
+ sectionId: string;
1212
+ id: string;
1213
+ completedItems: number;
1214
+ } | {
1215
+ [x: string]: unknown;
1216
+ itemId: string;
1217
+ completedItems: number;
1218
+ id?: string | undefined;
1219
+ })[];
1220
+ export declare const validateViewOptions: (input: unknown) => {
1221
+ [x: string]: unknown;
1222
+ viewType: (string & {}) | "TODAY" | "UPCOMING" | "PROJECT" | "LABEL" | "FILTER" | "WORKSPACE_FILTER" | "SEARCH" | "TEMPLATE_PREVIEW" | "TASK_DETAIL" | "AUTOMATION" | "ASSIGNED" | "ASSIGNED_TO_ME" | "OVERDUE" | "WORKSPACE_OVERVIEW";
1223
+ objectId?: string | null | undefined;
1224
+ groupedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | null | undefined;
1225
+ filteredBy?: string | null | undefined;
1226
+ viewMode?: (string & {}) | "LIST" | "BOARD" | "CALENDAR" | "TABLE" | null | undefined;
1227
+ showCompletedTasks?: boolean | undefined;
1228
+ sortedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | "MANUAL" | "ALPHABETICALLY" | null | undefined;
1229
+ sortOrder?: (string & {}) | "ASC" | "DESC" | null | undefined;
1230
+ calendarSettings?: {
1231
+ [x: string]: unknown;
1232
+ layout?: (string & {}) | "WEEK" | "MONTH" | null | undefined;
1233
+ visibleDayCount?: 1 | 3 | 7 | null | undefined;
1234
+ color?: (string & {}) | "PROJECT" | "LABEL" | "PRIORITY" | null | undefined;
1235
+ } | null | undefined;
1236
+ propertySettings?: {
1237
+ [x: string]: unknown;
1238
+ order?: string[] | undefined;
1239
+ properties?: Record<string, {
1240
+ [x: string]: unknown;
1241
+ is_hidden?: boolean | undefined;
1242
+ width?: number | undefined;
1243
+ }> | undefined;
1244
+ } | null | undefined;
1245
+ isDeleted?: false | undefined;
1246
+ }, validateViewOptionsArray: (input: unknown) => {
1247
+ [x: string]: unknown;
1248
+ viewType: (string & {}) | "TODAY" | "UPCOMING" | "PROJECT" | "LABEL" | "FILTER" | "WORKSPACE_FILTER" | "SEARCH" | "TEMPLATE_PREVIEW" | "TASK_DETAIL" | "AUTOMATION" | "ASSIGNED" | "ASSIGNED_TO_ME" | "OVERDUE" | "WORKSPACE_OVERVIEW";
1249
+ objectId?: string | null | undefined;
1250
+ groupedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | null | undefined;
1251
+ filteredBy?: string | null | undefined;
1252
+ viewMode?: (string & {}) | "LIST" | "BOARD" | "CALENDAR" | "TABLE" | null | undefined;
1253
+ showCompletedTasks?: boolean | undefined;
1254
+ sortedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | "MANUAL" | "ALPHABETICALLY" | null | undefined;
1255
+ sortOrder?: (string & {}) | "ASC" | "DESC" | null | undefined;
1256
+ calendarSettings?: {
1257
+ [x: string]: unknown;
1258
+ layout?: (string & {}) | "WEEK" | "MONTH" | null | undefined;
1259
+ visibleDayCount?: 1 | 3 | 7 | null | undefined;
1260
+ color?: (string & {}) | "PROJECT" | "LABEL" | "PRIORITY" | null | undefined;
1261
+ } | null | undefined;
1262
+ propertySettings?: {
1263
+ [x: string]: unknown;
1264
+ order?: string[] | undefined;
1265
+ properties?: Record<string, {
1266
+ [x: string]: unknown;
1267
+ is_hidden?: boolean | undefined;
1268
+ width?: number | undefined;
1269
+ }> | undefined;
1270
+ } | null | undefined;
1271
+ isDeleted?: false | undefined;
1272
+ }[];
1273
+ export declare const validateProjectViewOptionsDefaults: (input: unknown) => {
1274
+ [x: string]: unknown;
1275
+ projectId: string;
1276
+ viewMode?: (string & {}) | "LIST" | "BOARD" | "CALENDAR" | "TABLE" | null | undefined;
1277
+ groupedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | null | undefined;
1278
+ sortedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | "MANUAL" | "ALPHABETICALLY" | null | undefined;
1279
+ sortOrder?: (string & {}) | "ASC" | "DESC" | null | undefined;
1280
+ showCompletedTasks?: boolean | undefined;
1281
+ filteredBy?: string | null | undefined;
1282
+ calendarSettings?: {
1283
+ [x: string]: unknown;
1284
+ layout?: (string & {}) | "WEEK" | "MONTH" | null | undefined;
1285
+ visibleDayCount?: 1 | 3 | 7 | null | undefined;
1286
+ color?: (string & {}) | "PROJECT" | "LABEL" | "PRIORITY" | null | undefined;
1287
+ } | null | undefined;
1288
+ propertySettings?: {
1289
+ [x: string]: unknown;
1290
+ order?: string[] | undefined;
1291
+ properties?: Record<string, {
1292
+ [x: string]: unknown;
1293
+ is_hidden?: boolean | undefined;
1294
+ width?: number | undefined;
1295
+ }> | undefined;
1296
+ } | null | undefined;
1297
+ isDeleted?: false | undefined;
1298
+ }, validateProjectViewOptionsDefaultsArray: (input: unknown) => {
1299
+ [x: string]: unknown;
1300
+ projectId: string;
1301
+ viewMode?: (string & {}) | "LIST" | "BOARD" | "CALENDAR" | "TABLE" | null | undefined;
1302
+ groupedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | null | undefined;
1303
+ sortedBy?: (string & {}) | "PROJECT" | "LABEL" | "ASSIGNEE" | "ADDED_DATE" | "DUE_DATE" | "DEADLINE" | "PRIORITY" | "WORKSPACE" | "MANUAL" | "ALPHABETICALLY" | null | undefined;
1304
+ sortOrder?: (string & {}) | "ASC" | "DESC" | null | undefined;
1305
+ showCompletedTasks?: boolean | undefined;
1306
+ filteredBy?: string | null | undefined;
1307
+ calendarSettings?: {
1308
+ [x: string]: unknown;
1309
+ layout?: (string & {}) | "WEEK" | "MONTH" | null | undefined;
1310
+ visibleDayCount?: 1 | 3 | 7 | null | undefined;
1311
+ color?: (string & {}) | "PROJECT" | "LABEL" | "PRIORITY" | null | undefined;
1312
+ } | null | undefined;
1313
+ propertySettings?: {
1314
+ [x: string]: unknown;
1315
+ order?: string[] | undefined;
1316
+ properties?: Record<string, {
1317
+ [x: string]: unknown;
1318
+ is_hidden?: boolean | undefined;
1319
+ width?: number | undefined;
1320
+ }> | undefined;
1321
+ } | null | undefined;
1322
+ isDeleted?: false | undefined;
1323
+ }[];
1324
+ export declare const validateUserPlanLimits: (input: unknown) => {
1325
+ [x: string]: unknown;
1326
+ current: {
1327
+ [x: string]: unknown;
1328
+ activeProjects?: number | undefined;
1329
+ activityLog?: boolean | undefined;
1330
+ collaboratorsPerProject?: number | undefined;
1331
+ commentsPerTask?: number | undefined;
1332
+ fileUploadsPerComment?: number | undefined;
1333
+ filtersPerUser?: number | undefined;
1334
+ labelsPerTask?: number | undefined;
1335
+ maxProjects?: number | undefined;
1336
+ remindersPerUser?: number | undefined;
1337
+ sectionsPerProject?: number | undefined;
1338
+ tableLayout?: boolean | undefined;
1339
+ tasksPerProject?: number | undefined;
1340
+ };
1341
+ next: {
1342
+ [x: string]: unknown;
1343
+ activeProjects?: number | undefined;
1344
+ activityLog?: boolean | undefined;
1345
+ collaboratorsPerProject?: number | undefined;
1346
+ commentsPerTask?: number | undefined;
1347
+ fileUploadsPerComment?: number | undefined;
1348
+ filtersPerUser?: number | undefined;
1349
+ labelsPerTask?: number | undefined;
1350
+ maxProjects?: number | undefined;
1351
+ remindersPerUser?: number | undefined;
1352
+ sectionsPerProject?: number | undefined;
1353
+ tableLayout?: boolean | undefined;
1354
+ tasksPerProject?: number | undefined;
1355
+ } | null;
1356
+ };
1357
+ export declare const validateLiveNotification: (input: unknown) => {
1358
+ [x: string]: unknown;
1359
+ id: string;
1360
+ createdAt: Date;
1361
+ notificationType: string;
1362
+ isUnread: boolean;
1363
+ fromUid?: string | undefined;
1364
+ projectId?: string | undefined;
1365
+ invitationId?: string | undefined;
1366
+ itemId?: string | undefined;
1367
+ itemContent?: string | undefined;
1368
+ responsibleUid?: string | null | undefined;
1369
+ assignedByUid?: string | null | undefined;
1370
+ fromUser?: {
1371
+ email: string;
1372
+ fullName: string;
1373
+ id: string;
1374
+ imageId: string | null;
1375
+ } | undefined;
1376
+ projectName?: string | undefined;
1377
+ isDeleted?: boolean | undefined;
1378
+ invitationSecret?: string | undefined;
1379
+ }, validateLiveNotificationArray: (input: unknown) => {
1380
+ [x: string]: unknown;
1381
+ id: string;
1382
+ createdAt: Date;
1383
+ notificationType: string;
1384
+ isUnread: boolean;
1385
+ fromUid?: string | undefined;
1386
+ projectId?: string | undefined;
1387
+ invitationId?: string | undefined;
1388
+ itemId?: string | undefined;
1389
+ itemContent?: string | undefined;
1390
+ responsibleUid?: string | null | undefined;
1391
+ assignedByUid?: string | null | undefined;
1392
+ fromUser?: {
1393
+ email: string;
1394
+ fullName: string;
1395
+ id: string;
1396
+ imageId: string | null;
1397
+ } | undefined;
1398
+ projectName?: string | undefined;
1399
+ isDeleted?: boolean | undefined;
1400
+ invitationSecret?: string | undefined;
1401
+ }[];
1402
+ export declare const validateSyncWorkspace: (input: unknown) => {
1403
+ createdAt: Date | undefined;
1404
+ id: string;
1405
+ name: string;
1406
+ description: string;
1407
+ creatorId: string;
1408
+ isDeleted: boolean;
1409
+ isCollapsed: boolean;
1410
+ plan: "STARTER" | "BUSINESS";
1411
+ currentActiveProjects: number | null;
1412
+ currentMemberCount: number | null;
1413
+ currentTemplateCount: number | null;
1414
+ adminSortingApplied: boolean;
1415
+ logoBig?: string | null | undefined;
1416
+ logoMedium?: string | null | undefined;
1417
+ logoSmall?: string | null | undefined;
1418
+ logoS640?: string | null | undefined;
1419
+ role?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
1420
+ limits?: {
1421
+ [x: string]: any;
1422
+ current: Record<string, any> | null;
1423
+ next: Record<string, any> | null;
1424
+ } | undefined;
1425
+ inviteCode?: string | null | undefined;
1426
+ isLinkSharingEnabled?: boolean | null | undefined;
1427
+ isGuestAllowed?: boolean | null | undefined;
1428
+ memberCountByType?: {
1429
+ adminCount: number;
1430
+ guestCount: number;
1431
+ memberCount: number;
1432
+ } | undefined;
1433
+ pendingInvitations?: string[] | null | undefined;
1434
+ domainName?: string | null | undefined;
1435
+ domainDiscovery?: boolean | null | undefined;
1436
+ restrictEmailDomains?: boolean | null | undefined;
1437
+ projectSortPreference?: string | null | undefined;
1438
+ defaultCollaborators?: {
1439
+ predefinedGroupIds: string[];
1440
+ userIds: string[];
1441
+ } | undefined;
1442
+ properties?: Record<string, unknown> | undefined;
1443
+ }, validateSyncWorkspaceArray: (input: unknown) => {
1444
+ createdAt: Date | undefined;
1445
+ id: string;
1446
+ name: string;
1447
+ description: string;
1448
+ creatorId: string;
1449
+ isDeleted: boolean;
1450
+ isCollapsed: boolean;
1451
+ plan: "STARTER" | "BUSINESS";
1452
+ currentActiveProjects: number | null;
1453
+ currentMemberCount: number | null;
1454
+ currentTemplateCount: number | null;
1455
+ adminSortingApplied: boolean;
1456
+ logoBig?: string | null | undefined;
1457
+ logoMedium?: string | null | undefined;
1458
+ logoSmall?: string | null | undefined;
1459
+ logoS640?: string | null | undefined;
1460
+ role?: "ADMIN" | "MEMBER" | "GUEST" | undefined;
1461
+ limits?: {
1462
+ [x: string]: any;
1463
+ current: Record<string, any> | null;
1464
+ next: Record<string, any> | null;
1465
+ } | undefined;
1466
+ inviteCode?: string | null | undefined;
1467
+ isLinkSharingEnabled?: boolean | null | undefined;
1468
+ isGuestAllowed?: boolean | null | undefined;
1469
+ memberCountByType?: {
1470
+ adminCount: number;
1471
+ guestCount: number;
1472
+ memberCount: number;
1473
+ } | undefined;
1474
+ pendingInvitations?: string[] | null | undefined;
1475
+ domainName?: string | null | undefined;
1476
+ domainDiscovery?: boolean | null | undefined;
1477
+ restrictEmailDomains?: boolean | null | undefined;
1478
+ projectSortPreference?: string | null | undefined;
1479
+ defaultCollaborators?: {
1480
+ predefinedGroupIds: string[];
1481
+ userIds: string[];
1482
+ } | undefined;
1483
+ properties?: Record<string, unknown> | undefined;
1484
+ }[];
1485
+ export declare const validateSyncUser: (input: unknown) => {
1486
+ [x: string]: unknown;
1487
+ id: string;
1488
+ email: string;
1489
+ fullName: string;
1490
+ activatedUser: boolean;
1491
+ autoReminder: number;
1492
+ businessAccountId: string | null;
1493
+ dailyGoal: number;
1494
+ dateFormat: "DD/MM/YYYY" | "MM/DD/YYYY";
1495
+ daysOff: number[];
1496
+ featureIdentifier: string;
1497
+ features: {
1498
+ [x: string]: unknown;
1499
+ karmaDisabled: boolean;
1500
+ restriction: number;
1501
+ karmaVacation: boolean;
1502
+ dateistLang: any;
1503
+ beta: boolean;
1504
+ hasPushReminders: boolean;
1505
+ dateistInlineDisabled: boolean;
1506
+ autoInviteDisabled?: boolean | undefined;
1507
+ goldTheme?: boolean | undefined;
1508
+ migratedFromTdb?: boolean | undefined;
1509
+ };
1510
+ hasMagicNumber: boolean;
1511
+ hasPassword: boolean;
1512
+ imageId: string | null;
1513
+ inboxProjectId: string;
1514
+ isCelebrationsEnabled: boolean;
1515
+ isPremium: boolean;
1516
+ joinableWorkspace: {
1517
+ [x: string]: unknown;
1518
+ workspaceId: string;
1519
+ workspaceName: string;
1520
+ memberCount: number;
1521
+ } | null;
1522
+ joinedAt: Date;
1523
+ gettingStartedGuideProjects: {
1524
+ [x: string]: unknown;
1525
+ onboardingUseCase: string;
1526
+ projectId: string;
1527
+ completed: boolean;
1528
+ closed: boolean;
1529
+ }[] | null;
1530
+ karma: number;
1531
+ karmaTrend: string;
1532
+ lang: string;
1533
+ nextWeek: "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday";
1534
+ premiumStatus: "not_premium" | "current_personal_plan" | "legacy_personal_plan" | "teams_business_member";
1535
+ premiumUntil: Date | null;
1536
+ shareLimit: number;
1537
+ sortOrder: number;
1538
+ startDay: "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday";
1539
+ startPage: string;
1540
+ themeId: string;
1541
+ timeFormat: "24h" | "12h";
1542
+ tzInfo: {
1543
+ [x: string]: unknown;
1544
+ timezone: string;
1545
+ hours: number;
1546
+ minutes: number;
1547
+ isDst: boolean;
1548
+ gmtString: string;
1549
+ };
1550
+ uniquePrefix: number;
1551
+ verificationStatus: string;
1552
+ websocketUrl: string;
1553
+ weekendStartDay: number;
1554
+ weeklyGoal: number;
1555
+ avatarBig?: string | undefined;
1556
+ avatarMedium?: string | undefined;
1557
+ avatarS640?: string | undefined;
1558
+ avatarSmall?: string | undefined;
1559
+ dateistLang?: string | null | undefined;
1560
+ freeTrailExpires?: Date | undefined;
1561
+ hasStartedATrial?: boolean | undefined;
1562
+ mfaEnabled?: boolean | undefined;
1563
+ mobileHost?: string | null | undefined;
1564
+ mobileNumber?: string | null | undefined;
1565
+ onboardingLevel?: string | null | undefined;
1566
+ onboardingRole?: string | null | undefined;
1567
+ onboardingPersona?: string | null | undefined;
1568
+ onboardingInitiated?: boolean | null | undefined;
1569
+ onboardingCompleted?: boolean | null | undefined;
1570
+ onboardingSkipped?: boolean | undefined;
1571
+ onboardingTeamMode?: boolean | null | undefined;
1572
+ onboardingUseCases?: string[] | null | undefined;
1573
+ rambleSessionsUsage?: {
1574
+ currentCount: number;
1575
+ limit: number;
1576
+ remaining: number;
1577
+ resetDate: Date;
1578
+ } | null | undefined;
1579
+ status?: {
1580
+ [x: string]: unknown;
1581
+ message: string;
1582
+ effects: {
1583
+ [x: string]: unknown;
1584
+ pauseNotifications?: {
1585
+ [x: string]: unknown;
1586
+ scope?: {
1587
+ [x: string]: unknown;
1588
+ mode: string;
1589
+ } | undefined;
1590
+ } | undefined;
1591
+ pauseActivity?: {
1592
+ [x: string]: unknown;
1593
+ scope?: {
1594
+ [x: string]: unknown;
1595
+ mode: string;
1596
+ } | undefined;
1597
+ } | undefined;
1598
+ };
1599
+ emoji?: string | null | undefined;
1600
+ activeUntil?: Date | null | undefined;
1601
+ } | null | undefined;
1602
+ token?: string | undefined;
1603
+ };
1604
+ export declare const validateUserSettings: (input: unknown) => {
1605
+ [x: string]: unknown;
1606
+ completedSoundDesktop: boolean;
1607
+ completedSoundMobile: boolean;
1608
+ legacyPricing: number;
1609
+ navigation: {
1610
+ [x: string]: unknown;
1611
+ countsShown: boolean;
1612
+ features: {
1613
+ name: string;
1614
+ shown: boolean;
1615
+ }[];
1616
+ };
1617
+ reminderDesktop: boolean;
1618
+ reminderEmail: boolean;
1619
+ reminderPush: boolean;
1620
+ resetRecurringSubtasks: boolean;
1621
+ aiEmailAssist: boolean;
1622
+ quickAdd: {
1623
+ [x: string]: unknown;
1624
+ labelsShown: boolean;
1625
+ features: {
1626
+ name: string;
1627
+ shown: boolean;
1628
+ }[];
1629
+ };
1630
+ debugLogSendingEnabledUntil?: string | null | undefined;
1631
+ theme?: string | null | undefined;
1632
+ syncTheme?: boolean | undefined;
1633
+ };
1634
+ export declare const validateSuggestion: (input: unknown) => {
1635
+ [x: string]: unknown;
1636
+ type: "templates" | "most_used_user_templates";
1637
+ content: {
1638
+ templates: {
1639
+ [x: string]: unknown;
1640
+ id: string;
1641
+ name: string;
1642
+ templateType: "project" | "setup";
1643
+ }[];
1644
+ locale: string;
1645
+ };
1646
+ isDeleted: boolean;
1647
+ } | {
1648
+ [x: string]: unknown;
1649
+ type: "most_used_workspace_templates";
1650
+ content: {
1651
+ templates: {
1652
+ [x: string]: unknown;
1653
+ id: string;
1654
+ name: string;
1655
+ templateType: "project" | "setup";
1656
+ workspaceId: string | null;
1657
+ }[];
1658
+ locale: string;
1659
+ };
1660
+ isDeleted: boolean;
1661
+ }, validateSuggestionArray: (input: unknown) => ({
1662
+ [x: string]: unknown;
1663
+ type: "templates" | "most_used_user_templates";
1664
+ content: {
1665
+ templates: {
1666
+ [x: string]: unknown;
1667
+ id: string;
1668
+ name: string;
1669
+ templateType: "project" | "setup";
1670
+ }[];
1671
+ locale: string;
1672
+ };
1673
+ isDeleted: boolean;
1674
+ } | {
1675
+ [x: string]: unknown;
1676
+ type: "most_used_workspace_templates";
1677
+ content: {
1678
+ templates: {
1679
+ [x: string]: unknown;
1680
+ id: string;
1681
+ name: string;
1682
+ templateType: "project" | "setup";
1683
+ workspaceId: string | null;
1684
+ }[];
1685
+ locale: string;
1686
+ };
1687
+ isDeleted: boolean;
1688
+ })[];
1689
+ export declare function parseSyncResponse(raw: Record<string, unknown>): SyncResponse;
1690
+ export declare const validateApp: (input: unknown) => {
1691
+ id: string;
1692
+ clientId: string;
1693
+ status: "public";
1694
+ displayName: string;
1695
+ userId: string;
1696
+ createdAt: Date;
1697
+ serviceUrl: string | null;
1698
+ oauthRedirectUri: string | null;
1699
+ description: string | null;
1700
+ iconSm: string | null;
1701
+ iconMd: string | null;
1702
+ iconLg: string | null;
1703
+ appTokenScopes: string[] | null;
1704
+ }, validateAppArray: (input: unknown) => {
1705
+ id: string;
1706
+ clientId: string;
1707
+ status: "public";
1708
+ displayName: string;
1709
+ userId: string;
1710
+ createdAt: Date;
1711
+ serviceUrl: string | null;
1712
+ oauthRedirectUri: string | null;
1713
+ description: string | null;
1714
+ iconSm: string | null;
1715
+ iconMd: string | null;
1716
+ iconLg: string | null;
1717
+ appTokenScopes: string[] | null;
1718
+ }[];
1719
+ export declare const validateAppWithUserCount: (input: unknown) => {
1720
+ id: string;
1721
+ clientId: string;
1722
+ status: "public";
1723
+ displayName: string;
1724
+ userId: string;
1725
+ createdAt: Date;
1726
+ serviceUrl: string | null;
1727
+ oauthRedirectUri: string | null;
1728
+ description: string | null;
1729
+ iconSm: string | null;
1730
+ iconMd: string | null;
1731
+ iconLg: string | null;
1732
+ appTokenScopes: string[] | null;
1733
+ userCount: number;
1734
+ };
1735
+ export declare const validateAppSecrets: (input: unknown) => {
1736
+ clientId: string;
1737
+ clientSecret: string;
1738
+ };
1739
+ export declare const validateAppVerificationToken: (input: unknown) => {
1740
+ verificationToken: string;
1741
+ };
1742
+ export declare const validateAppTestToken: (input: unknown) => {
1743
+ accessToken?: string | null | undefined;
1744
+ };
1745
+ export declare const validateAppDistributionToken: (input: unknown) => {
1746
+ distributionToken: string;
1747
+ };
1748
+ export declare const validateAppByDistributionToken: (input: unknown) => {
1749
+ id: string;
1750
+ displayName: string;
1751
+ description: string | null;
1752
+ iconMd: string | null;
1753
+ appTokenScopes: string[] | null;
1754
+ uiExtensions: {
1755
+ name: string;
1756
+ description: string;
1757
+ icon: string | null;
1758
+ extensionType: "context-menu" | "composer" | "settings";
1759
+ }[];
1760
+ };
1761
+ export declare const validateAppWebhook: (input: unknown) => {
1762
+ status: "active" | "invalid";
1763
+ callbackUrl: string;
1764
+ version: "1";
1765
+ events: ("project:added" | "project:updated" | "project:deleted" | "project:archived" | "project:unarchived" | "item:added" | "item:updated" | "item:completed" | "item:uncompleted" | "item:deleted" | "note:added" | "note:updated" | "note:deleted" | "section:added" | "section:updated" | "section:deleted" | "section:archived" | "section:unarchived" | "label:added" | "label:updated" | "label:deleted" | "filter:added" | "filter:updated" | "filter:deleted" | "reminder:fired")[];
1766
+ };
1767
+ export declare const validateAppInstallation: (input: unknown) => {
1768
+ id: string;
1769
+ creator: string;
1770
+ createdTs: number;
1771
+ installationType: "user";
1772
+ appTokenScopesValidated: boolean;
1773
+ integration: {
1774
+ id: string;
1775
+ clientId: string;
1776
+ status: "public";
1777
+ displayName: string;
1778
+ userId: string;
1779
+ createdAt: Date;
1780
+ serviceUrl: string | null;
1781
+ oauthRedirectUri: string | null;
1782
+ description: string | null;
1783
+ iconSm: string | null;
1784
+ iconMd: string | null;
1785
+ iconLg: string | null;
1786
+ appTokenScopes: string[] | null;
1787
+ } | null;
1788
+ }, validateAppInstallationArray: (input: unknown) => {
1789
+ id: string;
1790
+ creator: string;
1791
+ createdTs: number;
1792
+ installationType: "user";
1793
+ appTokenScopesValidated: boolean;
1794
+ integration: {
1795
+ id: string;
1796
+ clientId: string;
1797
+ status: "public";
1798
+ displayName: string;
1799
+ userId: string;
1800
+ createdAt: Date;
1801
+ serviceUrl: string | null;
1802
+ oauthRedirectUri: string | null;
1803
+ description: string | null;
1804
+ iconSm: string | null;
1805
+ iconMd: string | null;
1806
+ iconLg: string | null;
1807
+ appTokenScopes: string[] | null;
1808
+ } | null;
1809
+ }[];
1810
+ export declare const validateUserAuthorization: (input: unknown) => {
1811
+ accessTokenId: string;
1812
+ scope: string[];
1813
+ scopeDescriptions: string[];
1814
+ createdAt: Date;
1815
+ app: {
1816
+ id: string;
1817
+ displayName: string;
1818
+ description: string | null;
1819
+ serviceUrl: string | null;
1820
+ iconMd: string | null;
1821
+ } | null;
1822
+ }, validateUserAuthorizationArray: (input: unknown) => {
1823
+ accessTokenId: string;
1824
+ scope: string[];
1825
+ scopeDescriptions: string[];
1826
+ createdAt: Date;
1827
+ app: {
1828
+ id: string;
1829
+ displayName: string;
1830
+ description: string | null;
1831
+ serviceUrl: string | null;
1832
+ iconMd: string | null;
1833
+ } | null;
1834
+ }[];
1835
+ export declare const validateUiExtension: (input: unknown) => {
1836
+ id: string;
1837
+ integrationId: string;
1838
+ extensionId: string;
1839
+ url: string;
1840
+ icon: string | null;
1841
+ name: string;
1842
+ description: string;
1843
+ width: number | null;
1844
+ height: number | null;
1845
+ defVersion: number;
1846
+ minimumCardistVersion: string;
1847
+ extensionType: "context-menu";
1848
+ contextType: "task" | "project";
1849
+ } | {
1850
+ id: string;
1851
+ integrationId: string;
1852
+ extensionId: string;
1853
+ url: string;
1854
+ icon: string | null;
1855
+ name: string;
1856
+ description: string;
1857
+ width: number | null;
1858
+ height: number | null;
1859
+ defVersion: number;
1860
+ minimumCardistVersion: string;
1861
+ extensionType: "composer";
1862
+ composerType: "task" | "comment";
1863
+ } | {
1864
+ id: string;
1865
+ integrationId: string;
1866
+ extensionId: string;
1867
+ url: string;
1868
+ icon: string | null;
1869
+ name: string;
1870
+ description: string;
1871
+ width: number | null;
1872
+ height: number | null;
1873
+ defVersion: number;
1874
+ minimumCardistVersion: string;
1875
+ extensionType: "settings";
1876
+ }, validateUiExtensionArray: (input: unknown) => ({
1877
+ id: string;
1878
+ integrationId: string;
1879
+ extensionId: string;
1880
+ url: string;
1881
+ icon: string | null;
1882
+ name: string;
1883
+ description: string;
1884
+ width: number | null;
1885
+ height: number | null;
1886
+ defVersion: number;
1887
+ minimumCardistVersion: string;
1888
+ extensionType: "context-menu";
1889
+ contextType: "task" | "project";
1890
+ } | {
1891
+ id: string;
1892
+ integrationId: string;
1893
+ extensionId: string;
1894
+ url: string;
1895
+ icon: string | null;
1896
+ name: string;
1897
+ description: string;
1898
+ width: number | null;
1899
+ height: number | null;
1900
+ defVersion: number;
1901
+ minimumCardistVersion: string;
1902
+ extensionType: "composer";
1903
+ composerType: "task" | "comment";
1904
+ } | {
1905
+ id: string;
1906
+ integrationId: string;
1907
+ extensionId: string;
1908
+ url: string;
1909
+ icon: string | null;
1910
+ name: string;
1911
+ description: string;
1912
+ width: number | null;
1913
+ height: number | null;
1914
+ defVersion: number;
1915
+ minimumCardistVersion: string;
1916
+ extensionType: "settings";
1917
+ })[];