@read-frog/api-contract 0.23.0 → 0.24.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.
package/dist/index.d.ts CHANGED
@@ -101,6 +101,8 @@ export declare const HostedAiQuotaExhaustedDataSchema: z.ZodObject<{
101
101
  "custom-action-guest-daily-v1": "custom-action-guest-daily-v1";
102
102
  "custom-action-pro-daily-v1": "custom-action-pro-daily-v1";
103
103
  "custom-action-user-daily-v1": "custom-action-user-daily-v1";
104
+ "pro-weekly-v1": "pro-weekly-v1";
105
+ "pro-weekly-v2": "pro-weekly-v2";
104
106
  "ultra-weekly-v1": "ultra-weekly-v1";
105
107
  }>;
106
108
  usedPercent: z.ZodNumber;
@@ -147,6 +149,8 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
147
149
  "custom-action-guest-daily-v1": "custom-action-guest-daily-v1";
148
150
  "custom-action-pro-daily-v1": "custom-action-pro-daily-v1";
149
151
  "custom-action-user-daily-v1": "custom-action-user-daily-v1";
152
+ "pro-weekly-v1": "pro-weekly-v1";
153
+ "pro-weekly-v2": "pro-weekly-v2";
150
154
  "ultra-weekly-v1": "ultra-weekly-v1";
151
155
  }>;
152
156
  usedPercent: z.ZodNumber;
@@ -263,6 +267,10 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
263
267
  readonly message: "A subscription change is already scheduled";
264
268
  readonly status: 409;
265
269
  };
270
+ readonly BILLING_CHECKOUT_CONFLICT: {
271
+ readonly message: "Please start a new checkout from the pricing page";
272
+ readonly status: 409;
273
+ };
266
274
  readonly CARD_NOT_REVIEWABLE: {
267
275
  readonly message: "Card cannot be reviewed in its current state";
268
276
  readonly status: 409;
@@ -295,6 +303,22 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
295
303
  readonly message: "Card status change is unavailable";
296
304
  readonly status: 409;
297
305
  };
306
+ readonly RESCHEDULE_PLAN_EXPIRED: {
307
+ readonly message: "The reschedule plan has expired; preview it again";
308
+ readonly status: 409;
309
+ };
310
+ readonly RESCHEDULE_STALE: {
311
+ readonly message: "Cards changed after the reschedule preview; preview it again";
312
+ readonly status: 409;
313
+ };
314
+ readonly RESCHEDULE_PREVIEW_TIMEOUT: {
315
+ readonly message: "Planning the reschedule took too long";
316
+ readonly status: 503;
317
+ };
318
+ readonly RESCHEDULE_DAILY_LIMIT_INVALID: {
319
+ readonly message: "The daily limit is outside the range a reschedule may suggest";
320
+ readonly status: 422;
321
+ };
298
322
  readonly NOTEBASE_VIEW_NOT_FOUND: {
299
323
  readonly message: "Notebase view not found";
300
324
  readonly status: 404;
@@ -352,6 +376,99 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
352
376
  readonly message: "This email link is not valid";
353
377
  readonly status: 400;
354
378
  };
379
+ readonly PDF_TRANSLATION_UNAVAILABLE: {
380
+ readonly message: "PDF translation is not available right now";
381
+ readonly status: 503;
382
+ };
383
+ readonly PDF_TRANSLATION_NOT_FOUND: {
384
+ readonly message: "PDF translation not found";
385
+ readonly status: 404;
386
+ };
387
+ readonly PDF_TRANSLATION_UPLOAD_NOT_FOUND: {
388
+ readonly data: z.ZodObject<{
389
+ uploadId: z.ZodUUID;
390
+ jobId: z.ZodOptional<z.ZodUUID>;
391
+ }, z.core.$strict>;
392
+ readonly message: "PDF upload not found";
393
+ readonly status: 404;
394
+ };
395
+ readonly PDF_TRANSLATION_UPLOAD_EXPIRED: {
396
+ readonly data: z.ZodObject<{
397
+ uploadId: z.ZodUUID;
398
+ jobId: z.ZodOptional<z.ZodUUID>;
399
+ }, z.core.$strict>;
400
+ readonly message: "The PDF upload has expired; upload the file again";
401
+ readonly status: 410;
402
+ };
403
+ readonly PDF_TRANSLATION_UPLOAD_NOT_COMPLETED: {
404
+ readonly data: z.ZodObject<{
405
+ uploadId: z.ZodUUID;
406
+ jobId: z.ZodOptional<z.ZodUUID>;
407
+ }, z.core.$strict>;
408
+ readonly message: "The PDF upload has not been completed";
409
+ readonly status: 409;
410
+ };
411
+ readonly PDF_TRANSLATION_FILE_TOO_LARGE: {
412
+ readonly message: "The PDF exceeds the maximum allowed size";
413
+ readonly status: 413;
414
+ };
415
+ readonly PDF_TRANSLATION_INVALID_PDF: {
416
+ readonly data: z.ZodObject<{
417
+ uploadId: z.ZodUUID;
418
+ jobId: z.ZodOptional<z.ZodUUID>;
419
+ }, z.core.$strict>;
420
+ readonly message: "The file is not a readable PDF";
421
+ readonly status: 422;
422
+ };
423
+ readonly PDF_TRANSLATION_ALREADY_TRANSLATED: {
424
+ readonly data: z.ZodObject<{
425
+ uploadId: z.ZodUUID;
426
+ jobId: z.ZodOptional<z.ZodUUID>;
427
+ }, z.core.$strict>;
428
+ readonly message: "This PDF is already a translation; upload the original instead";
429
+ readonly status: 422;
430
+ };
431
+ readonly PDF_TRANSLATION_PAGE_LIMIT_EXCEEDED: {
432
+ readonly data: z.ZodObject<{
433
+ uploadId: z.ZodUUID;
434
+ jobId: z.ZodOptional<z.ZodUUID>;
435
+ }, z.core.$strict>;
436
+ readonly message: "The PDF has more pages than one translation allows";
437
+ readonly status: 422;
438
+ };
439
+ readonly PDF_TRANSLATION_QUEUE_FULL: {
440
+ readonly message: "Too many PDF translations are waiting; try again when some have finished";
441
+ readonly status: 409;
442
+ };
443
+ readonly PDF_TRANSLATION_IDEMPOTENCY_CONFLICT: {
444
+ readonly message: "This idempotency key was already used for a different PDF translation";
445
+ readonly status: 409;
446
+ };
447
+ readonly PDF_TRANSLATION_INSUFFICIENT_CREDIT: {
448
+ readonly data: z.ZodObject<{
449
+ estimatedCostNanoUsd: z.ZodNumber;
450
+ remainingNanoUsd: z.ZodNumber;
451
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
452
+ }, z.core.$strict>;
453
+ readonly message: "Not enough Built-in AI credit left to translate this PDF";
454
+ readonly status: 429;
455
+ };
456
+ readonly PDF_TRANSLATION_NOT_CANCELLABLE: {
457
+ readonly message: "This PDF translation has already finished";
458
+ readonly status: 409;
459
+ };
460
+ readonly PDF_TRANSLATION_NOT_READY: {
461
+ readonly message: "The translated PDF is not available";
462
+ readonly status: 409;
463
+ };
464
+ readonly PDF_TRANSLATION_DOWNLOAD_RESTRICTED: {
465
+ readonly message: "Downloading a translated PDF needs a Pro or Ultra plan";
466
+ readonly status: 403;
467
+ };
468
+ readonly PDF_TRANSLATION_NOT_DELETABLE: {
469
+ readonly message: "Cancel this PDF translation before deleting it";
470
+ readonly status: 409;
471
+ };
355
472
  };
356
473
  export type PublicAppErrorCode = keyof typeof PUBLIC_APP_ERROR_DEFS;
357
474
  export type PublicAppErrorData<TCode extends PublicAppErrorCode> = (typeof PUBLIC_APP_ERROR_DEFS)[TCode] extends {
@@ -395,6 +512,8 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
395
512
  "custom-action-guest-daily-v1": "custom-action-guest-daily-v1";
396
513
  "custom-action-pro-daily-v1": "custom-action-pro-daily-v1";
397
514
  "custom-action-user-daily-v1": "custom-action-user-daily-v1";
515
+ "pro-weekly-v1": "pro-weekly-v1";
516
+ "pro-weekly-v2": "pro-weekly-v2";
398
517
  "ultra-weekly-v1": "ultra-weekly-v1";
399
518
  }>;
400
519
  usedPercent: z.ZodNumber;
@@ -511,6 +630,10 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
511
630
  readonly message: "A subscription change is already scheduled";
512
631
  readonly status: 409;
513
632
  };
633
+ readonly BILLING_CHECKOUT_CONFLICT: {
634
+ readonly message: "Please start a new checkout from the pricing page";
635
+ readonly status: 409;
636
+ };
514
637
  readonly CARD_NOT_REVIEWABLE: {
515
638
  readonly message: "Card cannot be reviewed in its current state";
516
639
  readonly status: 409;
@@ -543,6 +666,22 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
543
666
  readonly message: "Card status change is unavailable";
544
667
  readonly status: 409;
545
668
  };
669
+ readonly RESCHEDULE_PLAN_EXPIRED: {
670
+ readonly message: "The reschedule plan has expired; preview it again";
671
+ readonly status: 409;
672
+ };
673
+ readonly RESCHEDULE_STALE: {
674
+ readonly message: "Cards changed after the reschedule preview; preview it again";
675
+ readonly status: 409;
676
+ };
677
+ readonly RESCHEDULE_PREVIEW_TIMEOUT: {
678
+ readonly message: "Planning the reschedule took too long";
679
+ readonly status: 503;
680
+ };
681
+ readonly RESCHEDULE_DAILY_LIMIT_INVALID: {
682
+ readonly message: "The daily limit is outside the range a reschedule may suggest";
683
+ readonly status: 422;
684
+ };
546
685
  readonly NOTEBASE_VIEW_NOT_FOUND: {
547
686
  readonly message: "Notebase view not found";
548
687
  readonly status: 404;
@@ -600,6 +739,99 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
600
739
  readonly message: "This email link is not valid";
601
740
  readonly status: 400;
602
741
  };
742
+ readonly PDF_TRANSLATION_UNAVAILABLE: {
743
+ readonly message: "PDF translation is not available right now";
744
+ readonly status: 503;
745
+ };
746
+ readonly PDF_TRANSLATION_NOT_FOUND: {
747
+ readonly message: "PDF translation not found";
748
+ readonly status: 404;
749
+ };
750
+ readonly PDF_TRANSLATION_UPLOAD_NOT_FOUND: {
751
+ readonly data: z.ZodObject<{
752
+ uploadId: z.ZodUUID;
753
+ jobId: z.ZodOptional<z.ZodUUID>;
754
+ }, z.core.$strict>;
755
+ readonly message: "PDF upload not found";
756
+ readonly status: 404;
757
+ };
758
+ readonly PDF_TRANSLATION_UPLOAD_EXPIRED: {
759
+ readonly data: z.ZodObject<{
760
+ uploadId: z.ZodUUID;
761
+ jobId: z.ZodOptional<z.ZodUUID>;
762
+ }, z.core.$strict>;
763
+ readonly message: "The PDF upload has expired; upload the file again";
764
+ readonly status: 410;
765
+ };
766
+ readonly PDF_TRANSLATION_UPLOAD_NOT_COMPLETED: {
767
+ readonly data: z.ZodObject<{
768
+ uploadId: z.ZodUUID;
769
+ jobId: z.ZodOptional<z.ZodUUID>;
770
+ }, z.core.$strict>;
771
+ readonly message: "The PDF upload has not been completed";
772
+ readonly status: 409;
773
+ };
774
+ readonly PDF_TRANSLATION_FILE_TOO_LARGE: {
775
+ readonly message: "The PDF exceeds the maximum allowed size";
776
+ readonly status: 413;
777
+ };
778
+ readonly PDF_TRANSLATION_INVALID_PDF: {
779
+ readonly data: z.ZodObject<{
780
+ uploadId: z.ZodUUID;
781
+ jobId: z.ZodOptional<z.ZodUUID>;
782
+ }, z.core.$strict>;
783
+ readonly message: "The file is not a readable PDF";
784
+ readonly status: 422;
785
+ };
786
+ readonly PDF_TRANSLATION_ALREADY_TRANSLATED: {
787
+ readonly data: z.ZodObject<{
788
+ uploadId: z.ZodUUID;
789
+ jobId: z.ZodOptional<z.ZodUUID>;
790
+ }, z.core.$strict>;
791
+ readonly message: "This PDF is already a translation; upload the original instead";
792
+ readonly status: 422;
793
+ };
794
+ readonly PDF_TRANSLATION_PAGE_LIMIT_EXCEEDED: {
795
+ readonly data: z.ZodObject<{
796
+ uploadId: z.ZodUUID;
797
+ jobId: z.ZodOptional<z.ZodUUID>;
798
+ }, z.core.$strict>;
799
+ readonly message: "The PDF has more pages than one translation allows";
800
+ readonly status: 422;
801
+ };
802
+ readonly PDF_TRANSLATION_QUEUE_FULL: {
803
+ readonly message: "Too many PDF translations are waiting; try again when some have finished";
804
+ readonly status: 409;
805
+ };
806
+ readonly PDF_TRANSLATION_IDEMPOTENCY_CONFLICT: {
807
+ readonly message: "This idempotency key was already used for a different PDF translation";
808
+ readonly status: 409;
809
+ };
810
+ readonly PDF_TRANSLATION_INSUFFICIENT_CREDIT: {
811
+ readonly data: z.ZodObject<{
812
+ estimatedCostNanoUsd: z.ZodNumber;
813
+ remainingNanoUsd: z.ZodNumber;
814
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
815
+ }, z.core.$strict>;
816
+ readonly message: "Not enough Built-in AI credit left to translate this PDF";
817
+ readonly status: 429;
818
+ };
819
+ readonly PDF_TRANSLATION_NOT_CANCELLABLE: {
820
+ readonly message: "This PDF translation has already finished";
821
+ readonly status: 409;
822
+ };
823
+ readonly PDF_TRANSLATION_NOT_READY: {
824
+ readonly message: "The translated PDF is not available";
825
+ readonly status: 409;
826
+ };
827
+ readonly PDF_TRANSLATION_DOWNLOAD_RESTRICTED: {
828
+ readonly message: "Downloading a translated PDF needs a Pro or Ultra plan";
829
+ readonly status: 403;
830
+ };
831
+ readonly PDF_TRANSLATION_NOT_DELETABLE: {
832
+ readonly message: "Cancel this PDF translation before deleting it";
833
+ readonly status: 409;
834
+ };
603
835
  }[TCode];
604
836
  export declare function pickPublicErrorMap<const TCodes extends readonly PublicAppErrorCode[]>(...codes: TCodes): Pick<ErrorMap, TCodes[number]>;
605
837
  //#endregion
@@ -795,6 +1027,77 @@ export declare const billingCreateCheckoutSessionInputSchema: z.ZodObject<{
795
1027
  pro: "pro";
796
1028
  ultra: "ultra";
797
1029
  }>>;
1030
+ requestId: z.ZodOptional<z.ZodUUID>;
1031
+ attribution: z.ZodOptional<z.ZodObject<{
1032
+ journeyId: z.ZodUUID;
1033
+ actual: z.ZodObject<{
1034
+ entry: z.ZodEnum<{
1035
+ billing_settings: "billing_settings";
1036
+ content_link: "content_link";
1037
+ direct: "direct";
1038
+ ebook_limit: "ebook_limit";
1039
+ ebook_upload_gate: "ebook_upload_gate";
1040
+ extension_notebase_limit: "extension_notebase_limit";
1041
+ extension_plan_badge: "extension_plan_badge";
1042
+ extension_quota_exhausted: "extension_quota_exhausted";
1043
+ extension_upgrade: "extension_upgrade";
1044
+ extension_video_quota: "extension_video_quota";
1045
+ featurebase_banner: "featurebase_banner";
1046
+ mcp_limit: "mcp_limit";
1047
+ notebase_header: "notebase_header";
1048
+ notebase_limit: "notebase_limit";
1049
+ pdf_download_gate: "pdf_download_gate";
1050
+ pdf_free_trial_card: "pdf_free_trial_card";
1051
+ pdf_trial_exhausted: "pdf_trial_exhausted";
1052
+ pdf_upgrade_notice: "pdf_upgrade_notice";
1053
+ pdf_watermark_preview: "pdf_watermark_preview";
1054
+ site_footer: "site_footer";
1055
+ site_nav: "site_nav";
1056
+ unknown: "unknown";
1057
+ }>;
1058
+ occurredAt: z.ZodISODateTime;
1059
+ campaign: z.ZodOptional<z.ZodString>;
1060
+ sourceRoute: z.ZodOptional<z.ZodString>;
1061
+ }, z.core.$strict>;
1062
+ lastNonDirect: z.ZodOptional<z.ZodObject<{
1063
+ entry: z.ZodEnum<{
1064
+ billing_settings: "billing_settings";
1065
+ content_link: "content_link";
1066
+ direct: "direct";
1067
+ ebook_limit: "ebook_limit";
1068
+ ebook_upload_gate: "ebook_upload_gate";
1069
+ extension_notebase_limit: "extension_notebase_limit";
1070
+ extension_plan_badge: "extension_plan_badge";
1071
+ extension_quota_exhausted: "extension_quota_exhausted";
1072
+ extension_upgrade: "extension_upgrade";
1073
+ extension_video_quota: "extension_video_quota";
1074
+ featurebase_banner: "featurebase_banner";
1075
+ mcp_limit: "mcp_limit";
1076
+ notebase_header: "notebase_header";
1077
+ notebase_limit: "notebase_limit";
1078
+ pdf_download_gate: "pdf_download_gate";
1079
+ pdf_free_trial_card: "pdf_free_trial_card";
1080
+ pdf_trial_exhausted: "pdf_trial_exhausted";
1081
+ pdf_upgrade_notice: "pdf_upgrade_notice";
1082
+ pdf_watermark_preview: "pdf_watermark_preview";
1083
+ site_footer: "site_footer";
1084
+ site_nav: "site_nav";
1085
+ unknown: "unknown";
1086
+ }>;
1087
+ occurredAt: z.ZodISODateTime;
1088
+ campaign: z.ZodOptional<z.ZodString>;
1089
+ sourceRoute: z.ZodOptional<z.ZodString>;
1090
+ }, z.core.$strict>>;
1091
+ acquisition: z.ZodOptional<z.ZodObject<{
1092
+ occurredAt: z.ZodISODateTime;
1093
+ utmSource: z.ZodOptional<z.ZodString>;
1094
+ utmMedium: z.ZodOptional<z.ZodString>;
1095
+ utmCampaign: z.ZodOptional<z.ZodString>;
1096
+ utmContent: z.ZodOptional<z.ZodString>;
1097
+ utmTerm: z.ZodOptional<z.ZodString>;
1098
+ referrerDomain: z.ZodOptional<z.ZodString>;
1099
+ }, z.core.$strict>>;
1100
+ }, z.core.$strict>>;
798
1101
  }, z.core.$strict>;
799
1102
  export type BillingCreateCheckoutSessionInput = z.infer<typeof billingCreateCheckoutSessionInputSchema>;
800
1103
  export declare const billingCreateCustomerPortalSessionInputSchema: z.ZodObject<{
@@ -1515,6 +1818,34 @@ export declare const emailCategoryStateSchema: z.ZodObject<{
1515
1818
  subscribed: z.ZodBoolean;
1516
1819
  }, z.core.$strict>;
1517
1820
  export type EmailCategoryState = z.infer<typeof emailCategoryStateSchema>;
1821
+ /**
1822
+ * The category whose emails a person can time: Practice reminders, seeded as
1823
+ * `practice` (packages/db's migration 0067). The settings page shows the
1824
+ * time under its switch.
1825
+ */
1826
+ export declare const PRACTICE_REMINDER_CATEGORY_KEY = "practice";
1827
+ /**
1828
+ * When practice reminders reach someone who never chose a time: 18:00 in
1829
+ * their own time zone. The page shows it as the choice until one is made;
1830
+ * Ribbit's reminder automation sets the same as its own time, for people
1831
+ * without one (docs/ribbit/phase-3-automations.md).
1832
+ */
1833
+ export declare const PRACTICE_REMINDER_DEFAULT_TIME = "18:00";
1834
+ /** A time of day on the hour, `HH:00`: Ribbit takes people into a schedule once an hour. */
1835
+ export declare const practiceReminderTimeSchema: z.ZodString;
1836
+ export type PracticeReminderTime = z.infer<typeof practiceReminderTimeSchema>;
1837
+ /** The times the page offers: every hour of the day. */
1838
+ export declare const PRACTICE_REMINDER_TIMES: readonly PracticeReminderTime[];
1839
+ /**
1840
+ * The reminders area of `user_preferences`, as the database holds it: what
1841
+ * is not there, or no longer reads, is the default. `practiceTime` is the
1842
+ * practice reminder's time of day, in the person's own zone; null until they
1843
+ * choose one.
1844
+ */
1845
+ export declare const remindersPreferencesSchema: z.ZodObject<{
1846
+ practiceTime: z.ZodDefault<z.ZodCatch<z.ZodNullable<z.ZodString>>>;
1847
+ }, z.core.$strip>;
1848
+ export type RemindersPreferences = z.infer<typeof remindersPreferencesSchema>;
1518
1849
  export declare const emailPreferencesStateSchema: z.ZodObject<{
1519
1850
  categories: z.ZodArray<z.ZodObject<{
1520
1851
  key: z.ZodString;
@@ -1525,6 +1856,7 @@ export declare const emailPreferencesStateSchema: z.ZodObject<{
1525
1856
  subscribed: z.ZodBoolean;
1526
1857
  }, z.core.$strict>>;
1527
1858
  unsubscribedAll: z.ZodBoolean;
1859
+ practiceReminderTime: z.ZodNullable<z.ZodString>;
1528
1860
  }, z.core.$strict>;
1529
1861
  export type EmailPreferencesState = z.infer<typeof emailPreferencesStateSchema>;
1530
1862
  /**
@@ -1541,6 +1873,7 @@ export declare const emailPreferencesByTokenStateSchema: z.ZodObject<{
1541
1873
  subscribed: z.ZodBoolean;
1542
1874
  }, z.core.$strict>>;
1543
1875
  unsubscribedAll: z.ZodBoolean;
1876
+ practiceReminderTime: z.ZodNullable<z.ZodString>;
1544
1877
  maskedEmail: z.ZodString;
1545
1878
  highlightCategory: z.ZodNullable<z.ZodString>;
1546
1879
  }, z.core.$strict>;
@@ -1562,6 +1895,7 @@ export type EmailPreferencesGetInput = z.infer<typeof emailPreferencesGetInputSc
1562
1895
  export declare const emailPreferencesUpdateInputSchema: z.ZodObject<{
1563
1896
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1564
1897
  unsubscribedAll: z.ZodOptional<z.ZodBoolean>;
1898
+ practiceReminderTime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1565
1899
  locale: z.ZodEnum<{
1566
1900
  en: "en";
1567
1901
  es: "es";
@@ -1593,6 +1927,7 @@ export type EmailPreferencesGetByTokenInput = z.infer<typeof emailPreferencesGet
1593
1927
  export declare const emailPreferencesUpdateByTokenInputSchema: z.ZodObject<{
1594
1928
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1595
1929
  unsubscribedAll: z.ZodOptional<z.ZodBoolean>;
1930
+ practiceReminderTime: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1596
1931
  token: z.ZodString;
1597
1932
  locale: z.ZodEnum<{
1598
1933
  en: "en";
@@ -1662,6 +1997,7 @@ export declare const HostedAiFeatureSchema: z.ZodEnum<{
1662
1997
  languageDetection: "languageDetection";
1663
1998
  noteSuggestion: "noteSuggestion";
1664
1999
  pageTranslation: "pageTranslation";
2000
+ pdfTranslation: "pdfTranslation";
1665
2001
  selectionTranslation: "selectionTranslation";
1666
2002
  videoSubtitles: "videoSubtitles";
1667
2003
  }>;
@@ -1772,6 +2108,8 @@ export declare const HostedAiCreditPolicyIdSchema: z.ZodEnum<{
1772
2108
  "custom-action-guest-daily-v1": "custom-action-guest-daily-v1";
1773
2109
  "custom-action-pro-daily-v1": "custom-action-pro-daily-v1";
1774
2110
  "custom-action-user-daily-v1": "custom-action-user-daily-v1";
2111
+ "pro-weekly-v1": "pro-weekly-v1";
2112
+ "pro-weekly-v2": "pro-weekly-v2";
1775
2113
  "ultra-weekly-v1": "ultra-weekly-v1";
1776
2114
  }>;
1777
2115
  export declare const HostedAiCreditPeriodKindSchema: z.ZodEnum<{
@@ -1825,6 +2163,7 @@ export declare const HostedAiRecurringCreditStatusSchema: z.ZodObject<{
1825
2163
  languageDetection: "languageDetection";
1826
2164
  noteSuggestion: "noteSuggestion";
1827
2165
  pageTranslation: "pageTranslation";
2166
+ pdfTranslation: "pdfTranslation";
1828
2167
  selectionTranslation: "selectionTranslation";
1829
2168
  videoSubtitles: "videoSubtitles";
1830
2169
  }>>;
@@ -1846,6 +2185,7 @@ export declare const HostedAiOneTimeCreditStatusSchema: z.ZodObject<{
1846
2185
  languageDetection: "languageDetection";
1847
2186
  noteSuggestion: "noteSuggestion";
1848
2187
  pageTranslation: "pageTranslation";
2188
+ pdfTranslation: "pdfTranslation";
1849
2189
  selectionTranslation: "selectionTranslation";
1850
2190
  videoSubtitles: "videoSubtitles";
1851
2191
  }>>;
@@ -1868,6 +2208,7 @@ export declare const HostedAiCreditPoolStatusSchema: z.ZodDiscriminatedUnion<[z.
1868
2208
  languageDetection: "languageDetection";
1869
2209
  noteSuggestion: "noteSuggestion";
1870
2210
  pageTranslation: "pageTranslation";
2211
+ pdfTranslation: "pdfTranslation";
1871
2212
  selectionTranslation: "selectionTranslation";
1872
2213
  videoSubtitles: "videoSubtitles";
1873
2214
  }>>;
@@ -1881,10 +2222,58 @@ export declare const HostedAiCreditPoolStatusSchema: z.ZodDiscriminatedUnion<[z.
1881
2222
  languageDetection: "languageDetection";
1882
2223
  noteSuggestion: "noteSuggestion";
1883
2224
  pageTranslation: "pageTranslation";
2225
+ pdfTranslation: "pdfTranslation";
1884
2226
  selectionTranslation: "selectionTranslation";
1885
2227
  videoSubtitles: "videoSubtitles";
1886
2228
  }>>;
1887
2229
  }, z.core.$strict>], "periodKind">;
2230
+ /** Feature-scoped credit display, separate from the legacy extension status shape. */
2231
+ export declare const HostedAiCreditPoolsInputSchema: z.ZodObject<{
2232
+ feature: z.ZodEnum<{
2233
+ customAction: "customAction";
2234
+ inputTranslation: "inputTranslation";
2235
+ languageDetection: "languageDetection";
2236
+ noteSuggestion: "noteSuggestion";
2237
+ pageTranslation: "pageTranslation";
2238
+ pdfTranslation: "pdfTranslation";
2239
+ selectionTranslation: "selectionTranslation";
2240
+ videoSubtitles: "videoSubtitles";
2241
+ }>;
2242
+ }, z.core.$strict>;
2243
+ export declare const HostedAiCreditPoolsOutputSchema: z.ZodObject<{
2244
+ pools: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2245
+ periodKind: z.ZodEnum<{
2246
+ daily: "daily";
2247
+ weekly: "weekly";
2248
+ }>;
2249
+ usedPercent: z.ZodNumber;
2250
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
2251
+ features: z.ZodArray<z.ZodEnum<{
2252
+ customAction: "customAction";
2253
+ inputTranslation: "inputTranslation";
2254
+ languageDetection: "languageDetection";
2255
+ noteSuggestion: "noteSuggestion";
2256
+ pageTranslation: "pageTranslation";
2257
+ pdfTranslation: "pdfTranslation";
2258
+ selectionTranslation: "selectionTranslation";
2259
+ videoSubtitles: "videoSubtitles";
2260
+ }>>;
2261
+ }, z.core.$strict>, z.ZodObject<{
2262
+ periodKind: z.ZodLiteral<"once">;
2263
+ usedPercent: z.ZodNumber;
2264
+ expiresAt: z.ZodISODateTime;
2265
+ features: z.ZodArray<z.ZodEnum<{
2266
+ customAction: "customAction";
2267
+ inputTranslation: "inputTranslation";
2268
+ languageDetection: "languageDetection";
2269
+ noteSuggestion: "noteSuggestion";
2270
+ pageTranslation: "pageTranslation";
2271
+ pdfTranslation: "pdfTranslation";
2272
+ selectionTranslation: "selectionTranslation";
2273
+ videoSubtitles: "videoSubtitles";
2274
+ }>>;
2275
+ }, z.core.$strict>], "periodKind">>;
2276
+ }, z.core.$strict>;
1888
2277
  export declare const HostedAiTierStatusSchema: z.ZodObject<{
1889
2278
  accessAllowed: z.ZodBoolean;
1890
2279
  available: z.ZodBoolean;
@@ -1952,6 +2341,7 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1952
2341
  languageDetection: "languageDetection";
1953
2342
  noteSuggestion: "noteSuggestion";
1954
2343
  pageTranslation: "pageTranslation";
2344
+ pdfTranslation: "pdfTranslation";
1955
2345
  selectionTranslation: "selectionTranslation";
1956
2346
  videoSubtitles: "videoSubtitles";
1957
2347
  }>>;
@@ -1969,6 +2359,7 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1969
2359
  languageDetection: "languageDetection";
1970
2360
  noteSuggestion: "noteSuggestion";
1971
2361
  pageTranslation: "pageTranslation";
2362
+ pdfTranslation: "pdfTranslation";
1972
2363
  selectionTranslation: "selectionTranslation";
1973
2364
  videoSubtitles: "videoSubtitles";
1974
2365
  }>>;
@@ -1982,6 +2373,7 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1982
2373
  languageDetection: "languageDetection";
1983
2374
  noteSuggestion: "noteSuggestion";
1984
2375
  pageTranslation: "pageTranslation";
2376
+ pdfTranslation: "pdfTranslation";
1985
2377
  selectionTranslation: "selectionTranslation";
1986
2378
  videoSubtitles: "videoSubtitles";
1987
2379
  }>>;
@@ -2345,6 +2737,11 @@ export declare const notebaseSchema: z.ZodObject<{
2345
2737
  "FSRS-7": "FSRS-7";
2346
2738
  }>;
2347
2739
  srsSleepingAt: z.ZodNullable<z.ZodDate>;
2740
+ srsSleepSource: z.ZodNullable<z.ZodEnum<{
2741
+ agent: "agent";
2742
+ auto: "auto";
2743
+ manual: "manual";
2744
+ }>>;
2348
2745
  createdAt: z.ZodDate;
2349
2746
  updatedAt: z.ZodDate;
2350
2747
  }, z.core.$strip>;
@@ -2453,6 +2850,11 @@ export declare const NotebaseCreateOutputSchema: z.ZodObject<{
2453
2850
  "FSRS-7": "FSRS-7";
2454
2851
  }>;
2455
2852
  srsSleepingAt: z.ZodNullable<z.ZodDate>;
2853
+ srsSleepSource: z.ZodNullable<z.ZodEnum<{
2854
+ agent: "agent";
2855
+ auto: "auto";
2856
+ manual: "manual";
2857
+ }>>;
2456
2858
  createdAt: z.ZodDate;
2457
2859
  updatedAt: z.ZodDate;
2458
2860
  }, z.core.$strip>;
@@ -2494,6 +2896,11 @@ export declare const NotebaseUpdateOutputSchema: z.ZodObject<{
2494
2896
  "FSRS-7": "FSRS-7";
2495
2897
  }>;
2496
2898
  srsSleepingAt: z.ZodNullable<z.ZodDate>;
2899
+ srsSleepSource: z.ZodNullable<z.ZodEnum<{
2900
+ agent: "agent";
2901
+ auto: "auto";
2902
+ manual: "manual";
2903
+ }>>;
2497
2904
  createdAt: z.ZodDate;
2498
2905
  updatedAt: z.ZodDate;
2499
2906
  }, z.core.$strip>;
@@ -2558,6 +2965,11 @@ export declare const NotebaseGetOutputSchema: z.ZodObject<{
2558
2965
  "FSRS-7": "FSRS-7";
2559
2966
  }>;
2560
2967
  srsSleepingAt: z.ZodNullable<z.ZodDate>;
2968
+ srsSleepSource: z.ZodNullable<z.ZodEnum<{
2969
+ agent: "agent";
2970
+ auto: "auto";
2971
+ manual: "manual";
2972
+ }>>;
2561
2973
  createdAt: z.ZodCoercedDate<unknown>;
2562
2974
  updatedAt: z.ZodCoercedDate<unknown>;
2563
2975
  notebaseColumns: z.ZodArray<z.ZodObject<{
@@ -3221,6 +3633,315 @@ export declare const notebaseViewSchema: z.ZodObject<{
3221
3633
  }, z.core.$strip>;
3222
3634
  export type NotebaseView = z.infer<typeof notebaseViewSchema>;
3223
3635
  //#endregion
3636
+ //#region src/schemas/pdf-translation.d.ts
3637
+ export declare const pdfTranslationJobStatusSchema: z.ZodEnum<{
3638
+ cancel_requested: "cancel_requested";
3639
+ cancelled: "cancelled";
3640
+ expired: "expired";
3641
+ failed: "failed";
3642
+ queued: "queued";
3643
+ running: "running";
3644
+ succeeded: "succeeded";
3645
+ }>;
3646
+ export type PdfTranslationJobStatus = z.infer<typeof pdfTranslationJobStatusSchema>;
3647
+ /**
3648
+ * The two PDFs one translation makes: the translation alone, with the
3649
+ * original's layout, and the original and translated pages side by side.
3650
+ */
3651
+ export declare const pdfTranslationOutputVariantSchema: z.ZodEnum<{
3652
+ bilingual: "bilingual";
3653
+ translated: "translated";
3654
+ }>;
3655
+ export type PdfTranslationOutputVariant = z.infer<typeof pdfTranslationOutputVariantSchema>;
3656
+ export declare const pdfTranslationRequestUploadInputSchema: z.ZodObject<{
3657
+ fileName: z.ZodString;
3658
+ fileByteSize: z.ZodNumber;
3659
+ }, z.core.$strict>;
3660
+ export type PdfTranslationRequestUploadInput = z.infer<typeof pdfTranslationRequestUploadInputSchema>;
3661
+ export declare const pdfTranslationRequestUploadOutputSchema: z.ZodObject<{
3662
+ uploadId: z.ZodUUID;
3663
+ upload: z.ZodObject<{
3664
+ url: z.ZodURL;
3665
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
3666
+ }, z.core.$strict>;
3667
+ expiresAt: z.ZodCoercedDate<unknown>;
3668
+ }, z.core.$strict>;
3669
+ export type PdfTranslationRequestUploadOutput = z.infer<typeof pdfTranslationRequestUploadOutputSchema>;
3670
+ export declare const pdfTranslationSubmitInputSchema: z.ZodObject<{
3671
+ uploadIds: z.ZodArray<z.ZodUUID>;
3672
+ idempotencyKey: z.ZodString;
3673
+ targetLanguage: z.ZodString;
3674
+ modelTier: z.ZodEnum<{
3675
+ advance: "advance";
3676
+ normal: "normal";
3677
+ }>;
3678
+ }, z.core.$strict>;
3679
+ export type PdfTranslationSubmitInput = z.infer<typeof pdfTranslationSubmitInputSchema>;
3680
+ export declare const pdfTranslationJobIdInputSchema: z.ZodObject<{
3681
+ id: z.ZodUUID;
3682
+ }, z.core.$strict>;
3683
+ export type PdfTranslationJobIdInput = z.infer<typeof pdfTranslationJobIdInputSchema>;
3684
+ export declare const pdfTranslationOutputInputSchema: z.ZodObject<{
3685
+ id: z.ZodUUID;
3686
+ variant: z.ZodEnum<{
3687
+ bilingual: "bilingual";
3688
+ translated: "translated";
3689
+ }>;
3690
+ }, z.core.$strict>;
3691
+ export type PdfTranslationOutputInput = z.infer<typeof pdfTranslationOutputInputSchema>;
3692
+ export declare const pdfTranslationListInputSchema: z.ZodObject<{}, z.core.$strict>;
3693
+ export type PdfTranslationListInput = z.infer<typeof pdfTranslationListInputSchema>;
3694
+ export declare const pdfTranslationJobResourceSchema: z.ZodObject<{
3695
+ id: z.ZodUUID;
3696
+ status: z.ZodEnum<{
3697
+ cancel_requested: "cancel_requested";
3698
+ cancelled: "cancelled";
3699
+ expired: "expired";
3700
+ failed: "failed";
3701
+ queued: "queued";
3702
+ running: "running";
3703
+ succeeded: "succeeded";
3704
+ }>;
3705
+ sourceFileName: z.ZodString;
3706
+ targetLanguage: z.ZodString;
3707
+ modelTier: z.ZodEnum<{
3708
+ advance: "advance";
3709
+ normal: "normal";
3710
+ }>;
3711
+ batchId: z.ZodUUID;
3712
+ batchPosition: z.ZodNumber;
3713
+ waitingAhead: z.ZodNullable<z.ZodNumber>;
3714
+ freeTrial: z.ZodBoolean;
3715
+ outputs: z.ZodObject<{
3716
+ translated: z.ZodBoolean;
3717
+ bilingual: z.ZodBoolean;
3718
+ }, z.core.$strict>;
3719
+ pageCount: z.ZodNumber;
3720
+ progressStage: z.ZodNullable<z.ZodString>;
3721
+ progressPercent: z.ZodNumber;
3722
+ estimatedCostNanoUsd: z.ZodNumber;
3723
+ chargedCostNanoUsd: z.ZodNumber;
3724
+ error: z.ZodNullable<z.ZodObject<{
3725
+ category: z.ZodString;
3726
+ message: z.ZodString;
3727
+ }, z.core.$strict>>;
3728
+ workerRelease: z.ZodNullable<z.ZodString>;
3729
+ createdAt: z.ZodCoercedDate<unknown>;
3730
+ startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3731
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3732
+ outputExpiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3733
+ }, z.core.$strict>;
3734
+ export type PdfTranslationJobResource = z.infer<typeof pdfTranslationJobResourceSchema>;
3735
+ export declare const pdfTranslationListOutputSchema: z.ZodObject<{
3736
+ items: z.ZodArray<z.ZodObject<{
3737
+ id: z.ZodUUID;
3738
+ status: z.ZodEnum<{
3739
+ cancel_requested: "cancel_requested";
3740
+ cancelled: "cancelled";
3741
+ expired: "expired";
3742
+ failed: "failed";
3743
+ queued: "queued";
3744
+ running: "running";
3745
+ succeeded: "succeeded";
3746
+ }>;
3747
+ sourceFileName: z.ZodString;
3748
+ targetLanguage: z.ZodString;
3749
+ modelTier: z.ZodEnum<{
3750
+ advance: "advance";
3751
+ normal: "normal";
3752
+ }>;
3753
+ batchId: z.ZodUUID;
3754
+ batchPosition: z.ZodNumber;
3755
+ waitingAhead: z.ZodNullable<z.ZodNumber>;
3756
+ freeTrial: z.ZodBoolean;
3757
+ outputs: z.ZodObject<{
3758
+ translated: z.ZodBoolean;
3759
+ bilingual: z.ZodBoolean;
3760
+ }, z.core.$strict>;
3761
+ pageCount: z.ZodNumber;
3762
+ progressStage: z.ZodNullable<z.ZodString>;
3763
+ progressPercent: z.ZodNumber;
3764
+ estimatedCostNanoUsd: z.ZodNumber;
3765
+ chargedCostNanoUsd: z.ZodNumber;
3766
+ error: z.ZodNullable<z.ZodObject<{
3767
+ category: z.ZodString;
3768
+ message: z.ZodString;
3769
+ }, z.core.$strict>>;
3770
+ workerRelease: z.ZodNullable<z.ZodString>;
3771
+ createdAt: z.ZodCoercedDate<unknown>;
3772
+ startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3773
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3774
+ outputExpiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3775
+ }, z.core.$strict>>;
3776
+ }, z.core.$strict>;
3777
+ export type PdfTranslationListOutput = z.infer<typeof pdfTranslationListOutputSchema>;
3778
+ /** What a submission made: its batch, and one job per PDF in their order. */
3779
+ export declare const pdfTranslationSubmitOutputSchema: z.ZodObject<{
3780
+ batchId: z.ZodUUID;
3781
+ jobs: z.ZodArray<z.ZodObject<{
3782
+ id: z.ZodUUID;
3783
+ status: z.ZodEnum<{
3784
+ cancel_requested: "cancel_requested";
3785
+ cancelled: "cancelled";
3786
+ expired: "expired";
3787
+ failed: "failed";
3788
+ queued: "queued";
3789
+ running: "running";
3790
+ succeeded: "succeeded";
3791
+ }>;
3792
+ sourceFileName: z.ZodString;
3793
+ targetLanguage: z.ZodString;
3794
+ modelTier: z.ZodEnum<{
3795
+ advance: "advance";
3796
+ normal: "normal";
3797
+ }>;
3798
+ batchId: z.ZodUUID;
3799
+ batchPosition: z.ZodNumber;
3800
+ waitingAhead: z.ZodNullable<z.ZodNumber>;
3801
+ freeTrial: z.ZodBoolean;
3802
+ outputs: z.ZodObject<{
3803
+ translated: z.ZodBoolean;
3804
+ bilingual: z.ZodBoolean;
3805
+ }, z.core.$strict>;
3806
+ pageCount: z.ZodNumber;
3807
+ progressStage: z.ZodNullable<z.ZodString>;
3808
+ progressPercent: z.ZodNumber;
3809
+ estimatedCostNanoUsd: z.ZodNumber;
3810
+ chargedCostNanoUsd: z.ZodNumber;
3811
+ error: z.ZodNullable<z.ZodObject<{
3812
+ category: z.ZodString;
3813
+ message: z.ZodString;
3814
+ }, z.core.$strict>>;
3815
+ workerRelease: z.ZodNullable<z.ZodString>;
3816
+ createdAt: z.ZodCoercedDate<unknown>;
3817
+ startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3818
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3819
+ outputExpiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3820
+ }, z.core.$strict>>;
3821
+ }, z.core.$strict>;
3822
+ export type PdfTranslationSubmitOutput = z.infer<typeof pdfTranslationSubmitOutputSchema>;
3823
+ /** A job, and every job of its batch in their order (itself included). */
3824
+ export declare const pdfTranslationGetOutputSchema: z.ZodObject<{
3825
+ job: z.ZodObject<{
3826
+ id: z.ZodUUID;
3827
+ status: z.ZodEnum<{
3828
+ cancel_requested: "cancel_requested";
3829
+ cancelled: "cancelled";
3830
+ expired: "expired";
3831
+ failed: "failed";
3832
+ queued: "queued";
3833
+ running: "running";
3834
+ succeeded: "succeeded";
3835
+ }>;
3836
+ sourceFileName: z.ZodString;
3837
+ targetLanguage: z.ZodString;
3838
+ modelTier: z.ZodEnum<{
3839
+ advance: "advance";
3840
+ normal: "normal";
3841
+ }>;
3842
+ batchId: z.ZodUUID;
3843
+ batchPosition: z.ZodNumber;
3844
+ waitingAhead: z.ZodNullable<z.ZodNumber>;
3845
+ freeTrial: z.ZodBoolean;
3846
+ outputs: z.ZodObject<{
3847
+ translated: z.ZodBoolean;
3848
+ bilingual: z.ZodBoolean;
3849
+ }, z.core.$strict>;
3850
+ pageCount: z.ZodNumber;
3851
+ progressStage: z.ZodNullable<z.ZodString>;
3852
+ progressPercent: z.ZodNumber;
3853
+ estimatedCostNanoUsd: z.ZodNumber;
3854
+ chargedCostNanoUsd: z.ZodNumber;
3855
+ error: z.ZodNullable<z.ZodObject<{
3856
+ category: z.ZodString;
3857
+ message: z.ZodString;
3858
+ }, z.core.$strict>>;
3859
+ workerRelease: z.ZodNullable<z.ZodString>;
3860
+ createdAt: z.ZodCoercedDate<unknown>;
3861
+ startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3862
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3863
+ outputExpiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3864
+ }, z.core.$strict>;
3865
+ batch: z.ZodArray<z.ZodObject<{
3866
+ id: z.ZodUUID;
3867
+ status: z.ZodEnum<{
3868
+ cancel_requested: "cancel_requested";
3869
+ cancelled: "cancelled";
3870
+ expired: "expired";
3871
+ failed: "failed";
3872
+ queued: "queued";
3873
+ running: "running";
3874
+ succeeded: "succeeded";
3875
+ }>;
3876
+ sourceFileName: z.ZodString;
3877
+ targetLanguage: z.ZodString;
3878
+ modelTier: z.ZodEnum<{
3879
+ advance: "advance";
3880
+ normal: "normal";
3881
+ }>;
3882
+ batchId: z.ZodUUID;
3883
+ batchPosition: z.ZodNumber;
3884
+ waitingAhead: z.ZodNullable<z.ZodNumber>;
3885
+ freeTrial: z.ZodBoolean;
3886
+ outputs: z.ZodObject<{
3887
+ translated: z.ZodBoolean;
3888
+ bilingual: z.ZodBoolean;
3889
+ }, z.core.$strict>;
3890
+ pageCount: z.ZodNumber;
3891
+ progressStage: z.ZodNullable<z.ZodString>;
3892
+ progressPercent: z.ZodNumber;
3893
+ estimatedCostNanoUsd: z.ZodNumber;
3894
+ chargedCostNanoUsd: z.ZodNumber;
3895
+ error: z.ZodNullable<z.ZodObject<{
3896
+ category: z.ZodString;
3897
+ message: z.ZodString;
3898
+ }, z.core.$strict>>;
3899
+ workerRelease: z.ZodNullable<z.ZodString>;
3900
+ createdAt: z.ZodCoercedDate<unknown>;
3901
+ startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3902
+ completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3903
+ outputExpiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
3904
+ }, z.core.$strict>>;
3905
+ }, z.core.$strict>;
3906
+ export type PdfTranslationGetOutput = z.infer<typeof pdfTranslationGetOutputSchema>;
3907
+ export declare const pdfTranslationStatusInputSchema: z.ZodObject<{}, z.core.$strict>;
3908
+ export type PdfTranslationStatusInput = z.infer<typeof pdfTranslationStatusInputSchema>;
3909
+ export declare const pdfTranslationStatusOutputSchema: z.ZodObject<{
3910
+ freeTrialsRemaining: z.ZodNumber;
3911
+ funded: z.ZodBoolean;
3912
+ }, z.core.$strict>;
3913
+ export type PdfTranslationStatusOutput = z.infer<typeof pdfTranslationStatusOutputSchema>;
3914
+ export declare const pdfTranslationDownloadOutputSchema: z.ZodObject<{
3915
+ url: z.ZodURL;
3916
+ expiresAt: z.ZodCoercedDate<unknown>;
3917
+ }, z.core.$strict>;
3918
+ export type PdfTranslationDownloadOutput = z.infer<typeof pdfTranslationDownloadOutputSchema>;
3919
+ export declare const pdfTranslationPreviewOutputSchema: z.ZodObject<{
3920
+ url: z.ZodURL;
3921
+ expiresAt: z.ZodCoercedDate<unknown>;
3922
+ watermarked: z.ZodBoolean;
3923
+ }, z.core.$strict>;
3924
+ export type PdfTranslationPreviewOutput = z.infer<typeof pdfTranslationPreviewOutputSchema>;
3925
+ export declare const pdfTranslationDeleteOutputSchema: z.ZodObject<{
3926
+ id: z.ZodUUID;
3927
+ }, z.core.$strict>;
3928
+ export type PdfTranslationDeleteOutput = z.infer<typeof pdfTranslationDeleteOutputSchema>;
3929
+ export declare const PdfTranslationInsufficientCreditDataSchema: z.ZodObject<{
3930
+ estimatedCostNanoUsd: z.ZodNumber;
3931
+ remainingNanoUsd: z.ZodNumber;
3932
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
3933
+ }, z.core.$strict>;
3934
+ export type PdfTranslationInsufficientCreditData = z.infer<typeof PdfTranslationInsufficientCreditDataSchema>;
3935
+ /**
3936
+ * Which of a submission's PDFs a refusal is about, so the page can point at
3937
+ * it. For an upload an earlier request used up, also the translation it made.
3938
+ */
3939
+ export declare const PdfTranslationUploadErrorDataSchema: z.ZodObject<{
3940
+ uploadId: z.ZodUUID;
3941
+ jobId: z.ZodOptional<z.ZodUUID>;
3942
+ }, z.core.$strict>;
3943
+ export type PdfTranslationUploadErrorData = z.infer<typeof PdfTranslationUploadErrorDataSchema>;
3944
+ //#endregion
3224
3945
  //#region src/schemas/speech.d.ts
3225
3946
  /** The longest text one request reads aloud. */
3226
3947
  export declare const SPEECH_TEXT_MAX_LENGTH = 500;
@@ -4779,6 +5500,314 @@ export declare const srsAcknowledgeOptimizerResultsOutputSchema: z.ZodObject<{
4779
5500
  acknowledgedCount: z.ZodNumber;
4780
5501
  }, z.core.$strict>;
4781
5502
  export type SrsAcknowledgeOptimizerResultsOutput = z.infer<typeof srsAcknowledgeOptimizerResultsOutputSchema>;
5503
+ export declare const srsBacklogStatsInputSchema: z.ZodObject<{
5504
+ notebaseIds: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
5505
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
5506
+ }, z.core.$strict>;
5507
+ export type SrsBacklogStatsInput = z.infer<typeof srsBacklogStatsInputSchema>;
5508
+ /**
5509
+ * An Awake notebase with a positive daily review limit whose overdue reviews
5510
+ * fill at least `BACKLOG_PROMPT_DAYS.badge` days.
5511
+ */
5512
+ export declare const srsBacklogStatsSchema: z.ZodObject<{
5513
+ overdueReviewCount: z.ZodNumber;
5514
+ dailyLimit: z.ZodNumber;
5515
+ backlogDays: z.ZodNumber;
5516
+ }, z.core.$strip>;
5517
+ export type SrsBacklogStats = z.infer<typeof srsBacklogStatsSchema>;
5518
+ /** Only the notebases that get the badge; the rest are absent. */
5519
+ export declare const srsBacklogStatsOutputSchema: z.ZodRecord<z.ZodUUID, z.ZodObject<{
5520
+ overdueReviewCount: z.ZodNumber;
5521
+ dailyLimit: z.ZodNumber;
5522
+ backlogDays: z.ZodNumber;
5523
+ }, z.core.$strip>>;
5524
+ export type SrsBacklogStatsOutput = z.infer<typeof srsBacklogStatsOutputSchema>;
5525
+ export declare const srsPreviewPostponeInputSchema: z.ZodObject<{
5526
+ notebaseId: z.ZodUUID;
5527
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
5528
+ dailyLimit: z.ZodOptional<z.ZodNumber>;
5529
+ flattenFullRange: z.ZodOptional<z.ZodBoolean>;
5530
+ }, z.core.$strict>;
5531
+ export type SrsPreviewPostponeInput = z.infer<typeof srsPreviewPostponeInputSchema>;
5532
+ declare const rescheduleBaselineDaySchema: z.ZodObject<{
5533
+ day: z.ZodNumber;
5534
+ scheduled: z.ZodNumber;
5535
+ rSum: z.ZodNullable<z.ZodNumber>;
5536
+ }, z.core.$strip>;
5537
+ export type RescheduleBaselineDay = z.infer<typeof rescheduleBaselineDaySchema>;
5538
+ export declare const spreadDaySchema: z.ZodObject<{
5539
+ day: z.ZodNumber;
5540
+ scheduled: z.ZodNumber;
5541
+ backlog: z.ZodNumber;
5542
+ backlogRSum: z.ZodNumber;
5543
+ surplusIn: z.ZodNumber;
5544
+ surplusRSum: z.ZodNumber;
5545
+ surplusStay: z.ZodNumber;
5546
+ surplusOut: z.ZodNumber;
5547
+ }, z.core.$strip>;
5548
+ export type SpreadDay = z.infer<typeof spreadDaySchema>;
5549
+ export declare const flattenStepSchema: z.ZodObject<{
5550
+ checked: z.ZodBoolean;
5551
+ fromToday: z.ZodNumber;
5552
+ fromFuture: z.ZodNumber;
5553
+ fromDays: z.ZodNumber;
5554
+ kept: z.ZodObject<{
5555
+ stuck: z.ZodNumber;
5556
+ noRoom: z.ZodNumber;
5557
+ }, z.core.$strip>;
5558
+ qSuggest: z.ZodNumber;
5559
+ meanRAfter: z.ZodNumber;
5560
+ days: z.ZodArray<z.ZodObject<{
5561
+ day: z.ZodNumber;
5562
+ scheduled: z.ZodNumber;
5563
+ backlog: z.ZodNumber;
5564
+ backlogRSum: z.ZodNumber;
5565
+ surplusIn: z.ZodNumber;
5566
+ surplusRSum: z.ZodNumber;
5567
+ surplusStay: z.ZodNumber;
5568
+ surplusOut: z.ZodNumber;
5569
+ }, z.core.$strip>>;
5570
+ postponedAgain: z.ZodObject<{
5571
+ count: z.ZodNumber;
5572
+ rSum: z.ZodNumber;
5573
+ }, z.core.$strip>;
5574
+ }, z.core.$strip>;
5575
+ export type FlattenStep = z.infer<typeof flattenStepSchema>;
5576
+ /** One threshold's Postpone alone, before its Flatten option is attached. */
5577
+ export declare const postponeSummarySchema: z.ZodObject<{
5578
+ threshold: z.ZodNumber;
5579
+ moved: z.ZodNumber;
5580
+ overflowToday: z.ZodNumber;
5581
+ meanRiBefore: z.ZodNumber;
5582
+ meanRAfter: z.ZodNumber;
5583
+ days: z.ZodArray<z.ZodObject<{
5584
+ day: z.ZodNumber;
5585
+ postponed: z.ZodNumber;
5586
+ rSum: z.ZodNumber;
5587
+ }, z.core.$strip>>;
5588
+ }, z.core.$strip>;
5589
+ export type PostponeSummary = z.infer<typeof postponeSummarySchema>;
5590
+ export declare const postponeStepSchema: z.ZodObject<{
5591
+ threshold: z.ZodNumber;
5592
+ moved: z.ZodNumber;
5593
+ overflowToday: z.ZodNumber;
5594
+ meanRiBefore: z.ZodNumber;
5595
+ meanRAfter: z.ZodNumber;
5596
+ days: z.ZodArray<z.ZodObject<{
5597
+ day: z.ZodNumber;
5598
+ postponed: z.ZodNumber;
5599
+ rSum: z.ZodNumber;
5600
+ }, z.core.$strip>>;
5601
+ flatten: z.ZodNullable<z.ZodObject<{
5602
+ checked: z.ZodBoolean;
5603
+ fromToday: z.ZodNumber;
5604
+ fromFuture: z.ZodNumber;
5605
+ fromDays: z.ZodNumber;
5606
+ kept: z.ZodObject<{
5607
+ stuck: z.ZodNumber;
5608
+ noRoom: z.ZodNumber;
5609
+ }, z.core.$strip>;
5610
+ qSuggest: z.ZodNumber;
5611
+ meanRAfter: z.ZodNumber;
5612
+ days: z.ZodArray<z.ZodObject<{
5613
+ day: z.ZodNumber;
5614
+ scheduled: z.ZodNumber;
5615
+ backlog: z.ZodNumber;
5616
+ backlogRSum: z.ZodNumber;
5617
+ surplusIn: z.ZodNumber;
5618
+ surplusRSum: z.ZodNumber;
5619
+ surplusStay: z.ZodNumber;
5620
+ surplusOut: z.ZodNumber;
5621
+ }, z.core.$strip>>;
5622
+ postponedAgain: z.ZodObject<{
5623
+ count: z.ZodNumber;
5624
+ rSum: z.ZodNumber;
5625
+ }, z.core.$strip>;
5626
+ }, z.core.$strip>>;
5627
+ }, z.core.$strip>;
5628
+ export type PostponeStep = z.infer<typeof postponeStepSchema>;
5629
+ export declare const postponePlanSchema: z.ZodObject<{
5630
+ planId: z.ZodString;
5631
+ limit: z.ZodNumber;
5632
+ steps: z.ZodArray<z.ZodObject<{
5633
+ threshold: z.ZodNumber;
5634
+ moved: z.ZodNumber;
5635
+ overflowToday: z.ZodNumber;
5636
+ meanRiBefore: z.ZodNumber;
5637
+ meanRAfter: z.ZodNumber;
5638
+ days: z.ZodArray<z.ZodObject<{
5639
+ day: z.ZodNumber;
5640
+ postponed: z.ZodNumber;
5641
+ rSum: z.ZodNumber;
5642
+ }, z.core.$strip>>;
5643
+ flatten: z.ZodNullable<z.ZodObject<{
5644
+ checked: z.ZodBoolean;
5645
+ fromToday: z.ZodNumber;
5646
+ fromFuture: z.ZodNumber;
5647
+ fromDays: z.ZodNumber;
5648
+ kept: z.ZodObject<{
5649
+ stuck: z.ZodNumber;
5650
+ noRoom: z.ZodNumber;
5651
+ }, z.core.$strip>;
5652
+ qSuggest: z.ZodNumber;
5653
+ meanRAfter: z.ZodNumber;
5654
+ days: z.ZodArray<z.ZodObject<{
5655
+ day: z.ZodNumber;
5656
+ scheduled: z.ZodNumber;
5657
+ backlog: z.ZodNumber;
5658
+ backlogRSum: z.ZodNumber;
5659
+ surplusIn: z.ZodNumber;
5660
+ surplusRSum: z.ZodNumber;
5661
+ surplusStay: z.ZodNumber;
5662
+ surplusOut: z.ZodNumber;
5663
+ }, z.core.$strip>>;
5664
+ postponedAgain: z.ZodObject<{
5665
+ count: z.ZodNumber;
5666
+ rSum: z.ZodNumber;
5667
+ }, z.core.$strip>;
5668
+ }, z.core.$strip>>;
5669
+ }, z.core.$strip>>;
5670
+ skipped: z.ZodObject<{
5671
+ belowFloor: z.ZodNumber;
5672
+ maxInterval: z.ZodNumber;
5673
+ invalid: z.ZodNumber;
5674
+ }, z.core.$strip>;
5675
+ }, z.core.$strip>;
5676
+ export type PostponePlanSummary = z.infer<typeof postponePlanSchema>;
5677
+ export declare const srsPreviewPostponeOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5678
+ status: z.ZodLiteral<"ready">;
5679
+ expiresAt: z.ZodDate;
5680
+ q: z.ZodNumber;
5681
+ qConfigured: z.ZodNumber;
5682
+ qMax: z.ZodNumber;
5683
+ overdueReviewCount: z.ZodNumber;
5684
+ dueTodayReviewCount: z.ZodNumber;
5685
+ usedToday: z.ZodNumber;
5686
+ plan: z.ZodObject<{
5687
+ planId: z.ZodString;
5688
+ limit: z.ZodNumber;
5689
+ steps: z.ZodArray<z.ZodObject<{
5690
+ threshold: z.ZodNumber;
5691
+ moved: z.ZodNumber;
5692
+ overflowToday: z.ZodNumber;
5693
+ meanRiBefore: z.ZodNumber;
5694
+ meanRAfter: z.ZodNumber;
5695
+ days: z.ZodArray<z.ZodObject<{
5696
+ day: z.ZodNumber;
5697
+ postponed: z.ZodNumber;
5698
+ rSum: z.ZodNumber;
5699
+ }, z.core.$strip>>;
5700
+ flatten: z.ZodNullable<z.ZodObject<{
5701
+ checked: z.ZodBoolean;
5702
+ fromToday: z.ZodNumber;
5703
+ fromFuture: z.ZodNumber;
5704
+ fromDays: z.ZodNumber;
5705
+ kept: z.ZodObject<{
5706
+ stuck: z.ZodNumber;
5707
+ noRoom: z.ZodNumber;
5708
+ }, z.core.$strip>;
5709
+ qSuggest: z.ZodNumber;
5710
+ meanRAfter: z.ZodNumber;
5711
+ days: z.ZodArray<z.ZodObject<{
5712
+ day: z.ZodNumber;
5713
+ scheduled: z.ZodNumber;
5714
+ backlog: z.ZodNumber;
5715
+ backlogRSum: z.ZodNumber;
5716
+ surplusIn: z.ZodNumber;
5717
+ surplusRSum: z.ZodNumber;
5718
+ surplusStay: z.ZodNumber;
5719
+ surplusOut: z.ZodNumber;
5720
+ }, z.core.$strip>>;
5721
+ postponedAgain: z.ZodObject<{
5722
+ count: z.ZodNumber;
5723
+ rSum: z.ZodNumber;
5724
+ }, z.core.$strip>;
5725
+ }, z.core.$strip>>;
5726
+ }, z.core.$strip>>;
5727
+ skipped: z.ZodObject<{
5728
+ belowFloor: z.ZodNumber;
5729
+ maxInterval: z.ZodNumber;
5730
+ invalid: z.ZodNumber;
5731
+ }, z.core.$strip>;
5732
+ }, z.core.$strip>;
5733
+ suggested: z.ZodNullable<z.ZodObject<{
5734
+ planId: z.ZodString;
5735
+ limit: z.ZodNumber;
5736
+ steps: z.ZodArray<z.ZodObject<{
5737
+ threshold: z.ZodNumber;
5738
+ moved: z.ZodNumber;
5739
+ overflowToday: z.ZodNumber;
5740
+ meanRiBefore: z.ZodNumber;
5741
+ meanRAfter: z.ZodNumber;
5742
+ days: z.ZodArray<z.ZodObject<{
5743
+ day: z.ZodNumber;
5744
+ postponed: z.ZodNumber;
5745
+ rSum: z.ZodNumber;
5746
+ }, z.core.$strip>>;
5747
+ flatten: z.ZodNullable<z.ZodObject<{
5748
+ checked: z.ZodBoolean;
5749
+ fromToday: z.ZodNumber;
5750
+ fromFuture: z.ZodNumber;
5751
+ fromDays: z.ZodNumber;
5752
+ kept: z.ZodObject<{
5753
+ stuck: z.ZodNumber;
5754
+ noRoom: z.ZodNumber;
5755
+ }, z.core.$strip>;
5756
+ qSuggest: z.ZodNumber;
5757
+ meanRAfter: z.ZodNumber;
5758
+ days: z.ZodArray<z.ZodObject<{
5759
+ day: z.ZodNumber;
5760
+ scheduled: z.ZodNumber;
5761
+ backlog: z.ZodNumber;
5762
+ backlogRSum: z.ZodNumber;
5763
+ surplusIn: z.ZodNumber;
5764
+ surplusRSum: z.ZodNumber;
5765
+ surplusStay: z.ZodNumber;
5766
+ surplusOut: z.ZodNumber;
5767
+ }, z.core.$strip>>;
5768
+ postponedAgain: z.ZodObject<{
5769
+ count: z.ZodNumber;
5770
+ rSum: z.ZodNumber;
5771
+ }, z.core.$strip>;
5772
+ }, z.core.$strip>>;
5773
+ }, z.core.$strip>>;
5774
+ skipped: z.ZodObject<{
5775
+ belowFloor: z.ZodNumber;
5776
+ maxInterval: z.ZodNumber;
5777
+ invalid: z.ZodNumber;
5778
+ }, z.core.$strip>;
5779
+ }, z.core.$strip>>;
5780
+ baseline: z.ZodArray<z.ZodObject<{
5781
+ day: z.ZodNumber;
5782
+ scheduled: z.ZodNumber;
5783
+ rSum: z.ZodNullable<z.ZodNumber>;
5784
+ }, z.core.$strip>>;
5785
+ }, z.core.$strip>, z.ZodObject<{
5786
+ status: z.ZodLiteral<"quotaZero">;
5787
+ }, z.core.$strip>, z.ZodObject<{
5788
+ status: z.ZodLiteral<"invalidWeights">;
5789
+ }, z.core.$strip>], "status">;
5790
+ export type SrsPreviewPostponeOutput = z.infer<typeof srsPreviewPostponeOutputSchema>;
5791
+ export declare const srsApplyPostponeInputSchema: z.ZodObject<{
5792
+ notebaseId: z.ZodUUID;
5793
+ planId: z.ZodString;
5794
+ unlimited: z.ZodOptional<z.ZodBoolean>;
5795
+ threshold: z.ZodNumber;
5796
+ flatten: z.ZodOptional<z.ZodBoolean>;
5797
+ }, z.core.$strict>;
5798
+ export type SrsApplyPostponeInput = z.infer<typeof srsApplyPostponeInputSchema>;
5799
+ export declare const srsRescheduleApplyOutputSchema: z.ZodObject<{
5800
+ moved: z.ZodNumber;
5801
+ txid: z.ZodNullable<z.ZodNumber>;
5802
+ reviewsPerDay: z.ZodNumber;
5803
+ }, z.core.$strip>;
5804
+ export type SrsRescheduleApplyOutput = z.infer<typeof srsRescheduleApplyOutputSchema>;
5805
+ export declare const srsApplyPostponeOutputSchema: z.ZodObject<{
5806
+ moved: z.ZodNumber;
5807
+ txid: z.ZodNullable<z.ZodNumber>;
5808
+ reviewsPerDay: z.ZodNumber;
5809
+ }, z.core.$strip>;
5810
+ export type SrsApplyPostponeOutput = z.infer<typeof srsApplyPostponeOutputSchema>;
4782
5811
  //#endregion
4783
5812
  //#region src/schemas/srs-stats.d.ts
4784
5813
  export declare const srsActivityStatsItemSchema: z.ZodObject<{
@@ -5055,7 +6084,7 @@ export declare const contract: {
5055
6084
  unlimitedNotebaseNotes: import("zod").ZodBoolean;
5056
6085
  notebaseNoteLimit: import("zod").ZodNumber;
5057
6086
  notebaseNoteCount: import("zod").ZodNumber;
5058
- }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
6087
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CHECKOUT_CONFLICT" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
5059
6088
  createCheckoutSession: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5060
6089
  currency: import("zod").ZodEnum<{
5061
6090
  cad: "cad";
@@ -5081,9 +6110,80 @@ export declare const contract: {
5081
6110
  pro: "pro";
5082
6111
  ultra: "ultra";
5083
6112
  }>>;
6113
+ requestId: import("zod").ZodOptional<import("zod").ZodUUID>;
6114
+ attribution: import("zod").ZodOptional<import("zod").ZodObject<{
6115
+ journeyId: import("zod").ZodUUID;
6116
+ actual: import("zod").ZodObject<{
6117
+ entry: import("zod").ZodEnum<{
6118
+ billing_settings: "billing_settings";
6119
+ content_link: "content_link";
6120
+ direct: "direct";
6121
+ ebook_limit: "ebook_limit";
6122
+ ebook_upload_gate: "ebook_upload_gate";
6123
+ extension_notebase_limit: "extension_notebase_limit";
6124
+ extension_plan_badge: "extension_plan_badge";
6125
+ extension_quota_exhausted: "extension_quota_exhausted";
6126
+ extension_upgrade: "extension_upgrade";
6127
+ extension_video_quota: "extension_video_quota";
6128
+ featurebase_banner: "featurebase_banner";
6129
+ mcp_limit: "mcp_limit";
6130
+ notebase_header: "notebase_header";
6131
+ notebase_limit: "notebase_limit";
6132
+ pdf_download_gate: "pdf_download_gate";
6133
+ pdf_free_trial_card: "pdf_free_trial_card";
6134
+ pdf_trial_exhausted: "pdf_trial_exhausted";
6135
+ pdf_upgrade_notice: "pdf_upgrade_notice";
6136
+ pdf_watermark_preview: "pdf_watermark_preview";
6137
+ site_footer: "site_footer";
6138
+ site_nav: "site_nav";
6139
+ unknown: "unknown";
6140
+ }>;
6141
+ occurredAt: import("zod").ZodISODateTime;
6142
+ campaign: import("zod").ZodOptional<import("zod").ZodString>;
6143
+ sourceRoute: import("zod").ZodOptional<import("zod").ZodString>;
6144
+ }, import("zod/v4/core").$strict>;
6145
+ lastNonDirect: import("zod").ZodOptional<import("zod").ZodObject<{
6146
+ entry: import("zod").ZodEnum<{
6147
+ billing_settings: "billing_settings";
6148
+ content_link: "content_link";
6149
+ direct: "direct";
6150
+ ebook_limit: "ebook_limit";
6151
+ ebook_upload_gate: "ebook_upload_gate";
6152
+ extension_notebase_limit: "extension_notebase_limit";
6153
+ extension_plan_badge: "extension_plan_badge";
6154
+ extension_quota_exhausted: "extension_quota_exhausted";
6155
+ extension_upgrade: "extension_upgrade";
6156
+ extension_video_quota: "extension_video_quota";
6157
+ featurebase_banner: "featurebase_banner";
6158
+ mcp_limit: "mcp_limit";
6159
+ notebase_header: "notebase_header";
6160
+ notebase_limit: "notebase_limit";
6161
+ pdf_download_gate: "pdf_download_gate";
6162
+ pdf_free_trial_card: "pdf_free_trial_card";
6163
+ pdf_trial_exhausted: "pdf_trial_exhausted";
6164
+ pdf_upgrade_notice: "pdf_upgrade_notice";
6165
+ pdf_watermark_preview: "pdf_watermark_preview";
6166
+ site_footer: "site_footer";
6167
+ site_nav: "site_nav";
6168
+ unknown: "unknown";
6169
+ }>;
6170
+ occurredAt: import("zod").ZodISODateTime;
6171
+ campaign: import("zod").ZodOptional<import("zod").ZodString>;
6172
+ sourceRoute: import("zod").ZodOptional<import("zod").ZodString>;
6173
+ }, import("zod/v4/core").$strict>>;
6174
+ acquisition: import("zod").ZodOptional<import("zod").ZodObject<{
6175
+ occurredAt: import("zod").ZodISODateTime;
6176
+ utmSource: import("zod").ZodOptional<import("zod").ZodString>;
6177
+ utmMedium: import("zod").ZodOptional<import("zod").ZodString>;
6178
+ utmCampaign: import("zod").ZodOptional<import("zod").ZodString>;
6179
+ utmContent: import("zod").ZodOptional<import("zod").ZodString>;
6180
+ utmTerm: import("zod").ZodOptional<import("zod").ZodString>;
6181
+ referrerDomain: import("zod").ZodOptional<import("zod").ZodString>;
6182
+ }, import("zod/v4/core").$strict>>;
6183
+ }, import("zod/v4/core").$strict>>;
5084
6184
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5085
6185
  url: import("zod").ZodURL;
5086
- }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
6186
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CHECKOUT_CONFLICT" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
5087
6187
  createCustomerPortalSession: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5088
6188
  locale: import("zod").ZodEnum<{
5089
6189
  en: "en";
@@ -5098,10 +6198,10 @@ export declare const contract: {
5098
6198
  }>;
5099
6199
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5100
6200
  url: import("zod").ZodURL;
5101
- }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
6201
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CHECKOUT_CONFLICT" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
5102
6202
  cancelScheduledChange: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, import("zod").ZodObject<{
5103
6203
  success: import("zod").ZodLiteral<true>;
5104
- }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
6204
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "BILLING_CHANGE_SCHEDULED" | "BILLING_CHECKOUT_CONFLICT" | "BILLING_CUSTOMER_NOT_FOUND" | "BILLING_NOT_CONFIGURED" | "BILLING_PASS_ACTIVE">>, Record<never, never>>;
5105
6205
  };
5106
6206
  card: {
5107
6207
  list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
@@ -5604,10 +6704,12 @@ export declare const contract: {
5604
6704
  subscribed: import("zod").ZodBoolean;
5605
6705
  }, import("zod/v4/core").$strict>>;
5606
6706
  unsubscribedAll: import("zod").ZodBoolean;
6707
+ practiceReminderTime: import("zod").ZodNullable<import("zod").ZodString>;
5607
6708
  }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
5608
6709
  update: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5609
6710
  categories: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodBoolean>>;
5610
6711
  unsubscribedAll: import("zod").ZodOptional<import("zod").ZodBoolean>;
6712
+ practiceReminderTime: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5611
6713
  locale: import("zod").ZodEnum<{
5612
6714
  en: "en";
5613
6715
  es: "es";
@@ -5629,6 +6731,7 @@ export declare const contract: {
5629
6731
  subscribed: import("zod").ZodBoolean;
5630
6732
  }, import("zod/v4/core").$strict>>;
5631
6733
  unsubscribedAll: import("zod").ZodBoolean;
6734
+ practiceReminderTime: import("zod").ZodNullable<import("zod").ZodString>;
5632
6735
  }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
5633
6736
  getByToken: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5634
6737
  token: import("zod").ZodString;
@@ -5653,12 +6756,14 @@ export declare const contract: {
5653
6756
  subscribed: import("zod").ZodBoolean;
5654
6757
  }, import("zod/v4/core").$strict>>;
5655
6758
  unsubscribedAll: import("zod").ZodBoolean;
6759
+ practiceReminderTime: import("zod").ZodNullable<import("zod").ZodString>;
5656
6760
  maskedEmail: import("zod").ZodString;
5657
6761
  highlightCategory: import("zod").ZodNullable<import("zod").ZodString>;
5658
6762
  }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EMAIL_LINK_INVALID">>, Record<never, never>>;
5659
6763
  updateByToken: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5660
6764
  categories: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodBoolean>>;
5661
6765
  unsubscribedAll: import("zod").ZodOptional<import("zod").ZodBoolean>;
6766
+ practiceReminderTime: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5662
6767
  token: import("zod").ZodString;
5663
6768
  locale: import("zod").ZodEnum<{
5664
6769
  en: "en";
@@ -5681,6 +6786,7 @@ export declare const contract: {
5681
6786
  subscribed: import("zod").ZodBoolean;
5682
6787
  }, import("zod/v4/core").$strict>>;
5683
6788
  unsubscribedAll: import("zod").ZodBoolean;
6789
+ practiceReminderTime: import("zod").ZodNullable<import("zod").ZodString>;
5684
6790
  maskedEmail: import("zod").ZodString;
5685
6791
  highlightCategory: import("zod").ZodNullable<import("zod").ZodString>;
5686
6792
  }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EMAIL_LINK_INVALID">>, Record<never, never>>;
@@ -5698,6 +6804,51 @@ export declare const contract: {
5698
6804
  }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
5699
6805
  };
5700
6806
  hostedAi: {
6807
+ pools: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
6808
+ feature: import("zod").ZodEnum<{
6809
+ customAction: "customAction";
6810
+ inputTranslation: "inputTranslation";
6811
+ languageDetection: "languageDetection";
6812
+ noteSuggestion: "noteSuggestion";
6813
+ pageTranslation: "pageTranslation";
6814
+ pdfTranslation: "pdfTranslation";
6815
+ selectionTranslation: "selectionTranslation";
6816
+ videoSubtitles: "videoSubtitles";
6817
+ }>;
6818
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
6819
+ pools: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
6820
+ periodKind: import("zod").ZodEnum<{
6821
+ daily: "daily";
6822
+ weekly: "weekly";
6823
+ }>;
6824
+ usedPercent: import("zod").ZodNumber;
6825
+ resetAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
6826
+ features: import("zod").ZodArray<import("zod").ZodEnum<{
6827
+ customAction: "customAction";
6828
+ inputTranslation: "inputTranslation";
6829
+ languageDetection: "languageDetection";
6830
+ noteSuggestion: "noteSuggestion";
6831
+ pageTranslation: "pageTranslation";
6832
+ pdfTranslation: "pdfTranslation";
6833
+ selectionTranslation: "selectionTranslation";
6834
+ videoSubtitles: "videoSubtitles";
6835
+ }>>;
6836
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
6837
+ periodKind: import("zod").ZodLiteral<"once">;
6838
+ usedPercent: import("zod").ZodNumber;
6839
+ expiresAt: import("zod").ZodISODateTime;
6840
+ features: import("zod").ZodArray<import("zod").ZodEnum<{
6841
+ customAction: "customAction";
6842
+ inputTranslation: "inputTranslation";
6843
+ languageDetection: "languageDetection";
6844
+ noteSuggestion: "noteSuggestion";
6845
+ pageTranslation: "pageTranslation";
6846
+ pdfTranslation: "pdfTranslation";
6847
+ selectionTranslation: "selectionTranslation";
6848
+ videoSubtitles: "videoSubtitles";
6849
+ }>>;
6850
+ }, import("zod/v4/core").$strict>], "periodKind">>;
6851
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
5701
6852
  status: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
5702
6853
  credits: import("zod").ZodArray<import("zod").ZodObject<{
5703
6854
  periodKind: import("zod").ZodEnum<{
@@ -5712,6 +6863,7 @@ export declare const contract: {
5712
6863
  languageDetection: "languageDetection";
5713
6864
  noteSuggestion: "noteSuggestion";
5714
6865
  pageTranslation: "pageTranslation";
6866
+ pdfTranslation: "pdfTranslation";
5715
6867
  selectionTranslation: "selectionTranslation";
5716
6868
  videoSubtitles: "videoSubtitles";
5717
6869
  }>>;
@@ -5729,6 +6881,7 @@ export declare const contract: {
5729
6881
  languageDetection: "languageDetection";
5730
6882
  noteSuggestion: "noteSuggestion";
5731
6883
  pageTranslation: "pageTranslation";
6884
+ pdfTranslation: "pdfTranslation";
5732
6885
  selectionTranslation: "selectionTranslation";
5733
6886
  videoSubtitles: "videoSubtitles";
5734
6887
  }>>;
@@ -5742,6 +6895,7 @@ export declare const contract: {
5742
6895
  languageDetection: "languageDetection";
5743
6896
  noteSuggestion: "noteSuggestion";
5744
6897
  pageTranslation: "pageTranslation";
6898
+ pdfTranslation: "pdfTranslation";
5745
6899
  selectionTranslation: "selectionTranslation";
5746
6900
  videoSubtitles: "videoSubtitles";
5747
6901
  }>>;
@@ -6219,6 +7373,11 @@ export declare const contract: {
6219
7373
  "FSRS-7": "FSRS-7";
6220
7374
  }>;
6221
7375
  srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
7376
+ srsSleepSource: import("zod").ZodNullable<import("zod").ZodEnum<{
7377
+ agent: "agent";
7378
+ auto: "auto";
7379
+ manual: "manual";
7380
+ }>>;
6222
7381
  createdAt: import("zod").ZodCoercedDate<unknown>;
6223
7382
  updatedAt: import("zod").ZodCoercedDate<unknown>;
6224
7383
  notebaseColumns: import("zod").ZodArray<import("zod").ZodObject<{
@@ -6388,6 +7547,11 @@ export declare const contract: {
6388
7547
  "FSRS-7": "FSRS-7";
6389
7548
  }>;
6390
7549
  srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
7550
+ srsSleepSource: import("zod").ZodNullable<import("zod").ZodEnum<{
7551
+ agent: "agent";
7552
+ auto: "auto";
7553
+ manual: "manual";
7554
+ }>>;
6391
7555
  createdAt: import("zod").ZodDate;
6392
7556
  updatedAt: import("zod").ZodDate;
6393
7557
  }, import("zod/v4/core").$strip>;
@@ -6422,6 +7586,11 @@ export declare const contract: {
6422
7586
  "FSRS-7": "FSRS-7";
6423
7587
  }>;
6424
7588
  srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
7589
+ srsSleepSource: import("zod").ZodNullable<import("zod").ZodEnum<{
7590
+ agent: "agent";
7591
+ auto: "auto";
7592
+ manual: "manual";
7593
+ }>>;
6425
7594
  createdAt: import("zod").ZodDate;
6426
7595
  updatedAt: import("zod").ZodDate;
6427
7596
  }, import("zod/v4/core").$strip>;
@@ -6744,6 +7913,268 @@ export declare const contract: {
6744
7913
  txid: import("zod").ZodNumber;
6745
7914
  }, import("zod/v4/core").$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "CONCURRENT_POSITION_CONFLICT" | "NOTEBASE_NOT_FOUND">>, Record<never, never>>;
6746
7915
  };
7916
+ pdfTranslation: {
7917
+ status: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7918
+ freeTrialsRemaining: import("zod").ZodNumber;
7919
+ funded: import("zod").ZodBoolean;
7920
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Record<never, never>>;
7921
+ list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{}, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7922
+ items: import("zod").ZodArray<import("zod").ZodObject<{
7923
+ id: import("zod").ZodUUID;
7924
+ status: import("zod").ZodEnum<{
7925
+ cancel_requested: "cancel_requested";
7926
+ cancelled: "cancelled";
7927
+ expired: "expired";
7928
+ failed: "failed";
7929
+ queued: "queued";
7930
+ running: "running";
7931
+ succeeded: "succeeded";
7932
+ }>;
7933
+ sourceFileName: import("zod").ZodString;
7934
+ targetLanguage: import("zod").ZodString;
7935
+ modelTier: import("zod").ZodEnum<{
7936
+ advance: "advance";
7937
+ normal: "normal";
7938
+ }>;
7939
+ batchId: import("zod").ZodUUID;
7940
+ batchPosition: import("zod").ZodNumber;
7941
+ waitingAhead: import("zod").ZodNullable<import("zod").ZodNumber>;
7942
+ freeTrial: import("zod").ZodBoolean;
7943
+ outputs: import("zod").ZodObject<{
7944
+ translated: import("zod").ZodBoolean;
7945
+ bilingual: import("zod").ZodBoolean;
7946
+ }, import("zod/v4/core").$strict>;
7947
+ pageCount: import("zod").ZodNumber;
7948
+ progressStage: import("zod").ZodNullable<import("zod").ZodString>;
7949
+ progressPercent: import("zod").ZodNumber;
7950
+ estimatedCostNanoUsd: import("zod").ZodNumber;
7951
+ chargedCostNanoUsd: import("zod").ZodNumber;
7952
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
7953
+ category: import("zod").ZodString;
7954
+ message: import("zod").ZodString;
7955
+ }, import("zod/v4/core").$strict>>;
7956
+ workerRelease: import("zod").ZodNullable<import("zod").ZodString>;
7957
+ createdAt: import("zod").ZodCoercedDate<unknown>;
7958
+ startedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
7959
+ completedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
7960
+ outputExpiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
7961
+ }, import("zod/v4/core").$strict>>;
7962
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Record<never, never>>;
7963
+ requestUpload: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
7964
+ fileName: import("zod").ZodString;
7965
+ fileByteSize: import("zod").ZodNumber;
7966
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7967
+ uploadId: import("zod").ZodUUID;
7968
+ upload: import("zod").ZodObject<{
7969
+ url: import("zod").ZodURL;
7970
+ headers: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
7971
+ }, import("zod/v4/core").$strict>;
7972
+ expiresAt: import("zod").ZodCoercedDate<unknown>;
7973
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_FILE_TOO_LARGE">>, Record<never, never>>;
7974
+ submit: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
7975
+ uploadIds: import("zod").ZodArray<import("zod").ZodUUID>;
7976
+ idempotencyKey: import("zod").ZodString;
7977
+ targetLanguage: import("zod").ZodString;
7978
+ modelTier: import("zod").ZodEnum<{
7979
+ advance: "advance";
7980
+ normal: "normal";
7981
+ }>;
7982
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7983
+ batchId: import("zod").ZodUUID;
7984
+ jobs: import("zod").ZodArray<import("zod").ZodObject<{
7985
+ id: import("zod").ZodUUID;
7986
+ status: import("zod").ZodEnum<{
7987
+ cancel_requested: "cancel_requested";
7988
+ cancelled: "cancelled";
7989
+ expired: "expired";
7990
+ failed: "failed";
7991
+ queued: "queued";
7992
+ running: "running";
7993
+ succeeded: "succeeded";
7994
+ }>;
7995
+ sourceFileName: import("zod").ZodString;
7996
+ targetLanguage: import("zod").ZodString;
7997
+ modelTier: import("zod").ZodEnum<{
7998
+ advance: "advance";
7999
+ normal: "normal";
8000
+ }>;
8001
+ batchId: import("zod").ZodUUID;
8002
+ batchPosition: import("zod").ZodNumber;
8003
+ waitingAhead: import("zod").ZodNullable<import("zod").ZodNumber>;
8004
+ freeTrial: import("zod").ZodBoolean;
8005
+ outputs: import("zod").ZodObject<{
8006
+ translated: import("zod").ZodBoolean;
8007
+ bilingual: import("zod").ZodBoolean;
8008
+ }, import("zod/v4/core").$strict>;
8009
+ pageCount: import("zod").ZodNumber;
8010
+ progressStage: import("zod").ZodNullable<import("zod").ZodString>;
8011
+ progressPercent: import("zod").ZodNumber;
8012
+ estimatedCostNanoUsd: import("zod").ZodNumber;
8013
+ chargedCostNanoUsd: import("zod").ZodNumber;
8014
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
8015
+ category: import("zod").ZodString;
8016
+ message: import("zod").ZodString;
8017
+ }, import("zod/v4/core").$strict>>;
8018
+ workerRelease: import("zod").ZodNullable<import("zod").ZodString>;
8019
+ createdAt: import("zod").ZodCoercedDate<unknown>;
8020
+ startedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8021
+ completedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8022
+ outputExpiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8023
+ }, import("zod/v4/core").$strict>>;
8024
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "HOSTED_AI_TIER_RESTRICTED" | "PDF_TRANSLATION_ALREADY_TRANSLATED" | "PDF_TRANSLATION_FILE_TOO_LARGE" | "PDF_TRANSLATION_IDEMPOTENCY_CONFLICT" | "PDF_TRANSLATION_INSUFFICIENT_CREDIT" | "PDF_TRANSLATION_INVALID_PDF" | "PDF_TRANSLATION_PAGE_LIMIT_EXCEEDED" | "PDF_TRANSLATION_QUEUE_FULL" | "PDF_TRANSLATION_UPLOAD_EXPIRED" | "PDF_TRANSLATION_UPLOAD_NOT_COMPLETED" | "PDF_TRANSLATION_UPLOAD_NOT_FOUND">>, Record<never, never>>;
8025
+ get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8026
+ id: import("zod").ZodUUID;
8027
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8028
+ job: import("zod").ZodObject<{
8029
+ id: import("zod").ZodUUID;
8030
+ status: import("zod").ZodEnum<{
8031
+ cancel_requested: "cancel_requested";
8032
+ cancelled: "cancelled";
8033
+ expired: "expired";
8034
+ failed: "failed";
8035
+ queued: "queued";
8036
+ running: "running";
8037
+ succeeded: "succeeded";
8038
+ }>;
8039
+ sourceFileName: import("zod").ZodString;
8040
+ targetLanguage: import("zod").ZodString;
8041
+ modelTier: import("zod").ZodEnum<{
8042
+ advance: "advance";
8043
+ normal: "normal";
8044
+ }>;
8045
+ batchId: import("zod").ZodUUID;
8046
+ batchPosition: import("zod").ZodNumber;
8047
+ waitingAhead: import("zod").ZodNullable<import("zod").ZodNumber>;
8048
+ freeTrial: import("zod").ZodBoolean;
8049
+ outputs: import("zod").ZodObject<{
8050
+ translated: import("zod").ZodBoolean;
8051
+ bilingual: import("zod").ZodBoolean;
8052
+ }, import("zod/v4/core").$strict>;
8053
+ pageCount: import("zod").ZodNumber;
8054
+ progressStage: import("zod").ZodNullable<import("zod").ZodString>;
8055
+ progressPercent: import("zod").ZodNumber;
8056
+ estimatedCostNanoUsd: import("zod").ZodNumber;
8057
+ chargedCostNanoUsd: import("zod").ZodNumber;
8058
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
8059
+ category: import("zod").ZodString;
8060
+ message: import("zod").ZodString;
8061
+ }, import("zod/v4/core").$strict>>;
8062
+ workerRelease: import("zod").ZodNullable<import("zod").ZodString>;
8063
+ createdAt: import("zod").ZodCoercedDate<unknown>;
8064
+ startedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8065
+ completedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8066
+ outputExpiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8067
+ }, import("zod/v4/core").$strict>;
8068
+ batch: import("zod").ZodArray<import("zod").ZodObject<{
8069
+ id: import("zod").ZodUUID;
8070
+ status: import("zod").ZodEnum<{
8071
+ cancel_requested: "cancel_requested";
8072
+ cancelled: "cancelled";
8073
+ expired: "expired";
8074
+ failed: "failed";
8075
+ queued: "queued";
8076
+ running: "running";
8077
+ succeeded: "succeeded";
8078
+ }>;
8079
+ sourceFileName: import("zod").ZodString;
8080
+ targetLanguage: import("zod").ZodString;
8081
+ modelTier: import("zod").ZodEnum<{
8082
+ advance: "advance";
8083
+ normal: "normal";
8084
+ }>;
8085
+ batchId: import("zod").ZodUUID;
8086
+ batchPosition: import("zod").ZodNumber;
8087
+ waitingAhead: import("zod").ZodNullable<import("zod").ZodNumber>;
8088
+ freeTrial: import("zod").ZodBoolean;
8089
+ outputs: import("zod").ZodObject<{
8090
+ translated: import("zod").ZodBoolean;
8091
+ bilingual: import("zod").ZodBoolean;
8092
+ }, import("zod/v4/core").$strict>;
8093
+ pageCount: import("zod").ZodNumber;
8094
+ progressStage: import("zod").ZodNullable<import("zod").ZodString>;
8095
+ progressPercent: import("zod").ZodNumber;
8096
+ estimatedCostNanoUsd: import("zod").ZodNumber;
8097
+ chargedCostNanoUsd: import("zod").ZodNumber;
8098
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
8099
+ category: import("zod").ZodString;
8100
+ message: import("zod").ZodString;
8101
+ }, import("zod/v4/core").$strict>>;
8102
+ workerRelease: import("zod").ZodNullable<import("zod").ZodString>;
8103
+ createdAt: import("zod").ZodCoercedDate<unknown>;
8104
+ startedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8105
+ completedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8106
+ outputExpiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8107
+ }, import("zod/v4/core").$strict>>;
8108
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_NOT_FOUND">>, Record<never, never>>;
8109
+ cancel: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8110
+ id: import("zod").ZodUUID;
8111
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8112
+ id: import("zod").ZodUUID;
8113
+ status: import("zod").ZodEnum<{
8114
+ cancel_requested: "cancel_requested";
8115
+ cancelled: "cancelled";
8116
+ expired: "expired";
8117
+ failed: "failed";
8118
+ queued: "queued";
8119
+ running: "running";
8120
+ succeeded: "succeeded";
8121
+ }>;
8122
+ sourceFileName: import("zod").ZodString;
8123
+ targetLanguage: import("zod").ZodString;
8124
+ modelTier: import("zod").ZodEnum<{
8125
+ advance: "advance";
8126
+ normal: "normal";
8127
+ }>;
8128
+ batchId: import("zod").ZodUUID;
8129
+ batchPosition: import("zod").ZodNumber;
8130
+ waitingAhead: import("zod").ZodNullable<import("zod").ZodNumber>;
8131
+ freeTrial: import("zod").ZodBoolean;
8132
+ outputs: import("zod").ZodObject<{
8133
+ translated: import("zod").ZodBoolean;
8134
+ bilingual: import("zod").ZodBoolean;
8135
+ }, import("zod/v4/core").$strict>;
8136
+ pageCount: import("zod").ZodNumber;
8137
+ progressStage: import("zod").ZodNullable<import("zod").ZodString>;
8138
+ progressPercent: import("zod").ZodNumber;
8139
+ estimatedCostNanoUsd: import("zod").ZodNumber;
8140
+ chargedCostNanoUsd: import("zod").ZodNumber;
8141
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
8142
+ category: import("zod").ZodString;
8143
+ message: import("zod").ZodString;
8144
+ }, import("zod/v4/core").$strict>>;
8145
+ workerRelease: import("zod").ZodNullable<import("zod").ZodString>;
8146
+ createdAt: import("zod").ZodCoercedDate<unknown>;
8147
+ startedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8148
+ completedAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8149
+ outputExpiresAt: import("zod").ZodNullable<import("zod").ZodCoercedDate<unknown>>;
8150
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_NOT_CANCELLABLE" | "PDF_TRANSLATION_NOT_FOUND">>, Record<never, never>>;
8151
+ getPreviewUrl: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8152
+ id: import("zod").ZodUUID;
8153
+ variant: import("zod").ZodEnum<{
8154
+ bilingual: "bilingual";
8155
+ translated: "translated";
8156
+ }>;
8157
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8158
+ url: import("zod").ZodURL;
8159
+ expiresAt: import("zod").ZodCoercedDate<unknown>;
8160
+ watermarked: import("zod").ZodBoolean;
8161
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_NOT_FOUND" | "PDF_TRANSLATION_NOT_READY">>, Record<never, never>>;
8162
+ getDownloadUrl: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8163
+ id: import("zod").ZodUUID;
8164
+ variant: import("zod").ZodEnum<{
8165
+ bilingual: "bilingual";
8166
+ translated: "translated";
8167
+ }>;
8168
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8169
+ url: import("zod").ZodURL;
8170
+ expiresAt: import("zod").ZodCoercedDate<unknown>;
8171
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_DOWNLOAD_RESTRICTED" | "PDF_TRANSLATION_NOT_FOUND" | "PDF_TRANSLATION_NOT_READY">>, Record<never, never>>;
8172
+ delete: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8173
+ id: import("zod").ZodUUID;
8174
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8175
+ id: import("zod").ZodUUID;
8176
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_UNAVAILABLE">>, Pick<import("@orpc/contract").ErrorMap, "PDF_TRANSLATION_NOT_DELETABLE" | "PDF_TRANSLATION_NOT_FOUND">>, Record<never, never>>;
8177
+ };
6747
8178
  speech: {
6748
8179
  getPreferences: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, import("zod").ZodObject<{
6749
8180
  languageVoices: import("zod").ZodRecord<import("zod").ZodEnum<{
@@ -8108,6 +9539,135 @@ export declare const contract: {
8108
9539
  summary: string;
8109
9540
  description: string;
8110
9541
  } & Record<never, never>>;
9542
+ previewPostpone: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
9543
+ notebaseId: import("zod").ZodUUID;
9544
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
9545
+ dailyLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
9546
+ flattenFullRange: import("zod").ZodOptional<import("zod").ZodBoolean>;
9547
+ }, import("zod/v4/core").$strict>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
9548
+ status: import("zod").ZodLiteral<"ready">;
9549
+ expiresAt: import("zod").ZodDate;
9550
+ q: import("zod").ZodNumber;
9551
+ qConfigured: import("zod").ZodNumber;
9552
+ qMax: import("zod").ZodNumber;
9553
+ overdueReviewCount: import("zod").ZodNumber;
9554
+ dueTodayReviewCount: import("zod").ZodNumber;
9555
+ usedToday: import("zod").ZodNumber;
9556
+ plan: import("zod").ZodObject<{
9557
+ planId: import("zod").ZodString;
9558
+ limit: import("zod").ZodNumber;
9559
+ steps: import("zod").ZodArray<import("zod").ZodObject<{
9560
+ threshold: import("zod").ZodNumber;
9561
+ moved: import("zod").ZodNumber;
9562
+ overflowToday: import("zod").ZodNumber;
9563
+ meanRiBefore: import("zod").ZodNumber;
9564
+ meanRAfter: import("zod").ZodNumber;
9565
+ days: import("zod").ZodArray<import("zod").ZodObject<{
9566
+ day: import("zod").ZodNumber;
9567
+ postponed: import("zod").ZodNumber;
9568
+ rSum: import("zod").ZodNumber;
9569
+ }, import("zod/v4/core").$strip>>;
9570
+ flatten: import("zod").ZodNullable<import("zod").ZodObject<{
9571
+ checked: import("zod").ZodBoolean;
9572
+ fromToday: import("zod").ZodNumber;
9573
+ fromFuture: import("zod").ZodNumber;
9574
+ fromDays: import("zod").ZodNumber;
9575
+ kept: import("zod").ZodObject<{
9576
+ stuck: import("zod").ZodNumber;
9577
+ noRoom: import("zod").ZodNumber;
9578
+ }, import("zod/v4/core").$strip>;
9579
+ qSuggest: import("zod").ZodNumber;
9580
+ meanRAfter: import("zod").ZodNumber;
9581
+ days: import("zod").ZodArray<import("zod").ZodObject<{
9582
+ day: import("zod").ZodNumber;
9583
+ scheduled: import("zod").ZodNumber;
9584
+ backlog: import("zod").ZodNumber;
9585
+ backlogRSum: import("zod").ZodNumber;
9586
+ surplusIn: import("zod").ZodNumber;
9587
+ surplusRSum: import("zod").ZodNumber;
9588
+ surplusStay: import("zod").ZodNumber;
9589
+ surplusOut: import("zod").ZodNumber;
9590
+ }, import("zod/v4/core").$strip>>;
9591
+ postponedAgain: import("zod").ZodObject<{
9592
+ count: import("zod").ZodNumber;
9593
+ rSum: import("zod").ZodNumber;
9594
+ }, import("zod/v4/core").$strip>;
9595
+ }, import("zod/v4/core").$strip>>;
9596
+ }, import("zod/v4/core").$strip>>;
9597
+ skipped: import("zod").ZodObject<{
9598
+ belowFloor: import("zod").ZodNumber;
9599
+ maxInterval: import("zod").ZodNumber;
9600
+ invalid: import("zod").ZodNumber;
9601
+ }, import("zod/v4/core").$strip>;
9602
+ }, import("zod/v4/core").$strip>;
9603
+ suggested: import("zod").ZodNullable<import("zod").ZodObject<{
9604
+ planId: import("zod").ZodString;
9605
+ limit: import("zod").ZodNumber;
9606
+ steps: import("zod").ZodArray<import("zod").ZodObject<{
9607
+ threshold: import("zod").ZodNumber;
9608
+ moved: import("zod").ZodNumber;
9609
+ overflowToday: import("zod").ZodNumber;
9610
+ meanRiBefore: import("zod").ZodNumber;
9611
+ meanRAfter: import("zod").ZodNumber;
9612
+ days: import("zod").ZodArray<import("zod").ZodObject<{
9613
+ day: import("zod").ZodNumber;
9614
+ postponed: import("zod").ZodNumber;
9615
+ rSum: import("zod").ZodNumber;
9616
+ }, import("zod/v4/core").$strip>>;
9617
+ flatten: import("zod").ZodNullable<import("zod").ZodObject<{
9618
+ checked: import("zod").ZodBoolean;
9619
+ fromToday: import("zod").ZodNumber;
9620
+ fromFuture: import("zod").ZodNumber;
9621
+ fromDays: import("zod").ZodNumber;
9622
+ kept: import("zod").ZodObject<{
9623
+ stuck: import("zod").ZodNumber;
9624
+ noRoom: import("zod").ZodNumber;
9625
+ }, import("zod/v4/core").$strip>;
9626
+ qSuggest: import("zod").ZodNumber;
9627
+ meanRAfter: import("zod").ZodNumber;
9628
+ days: import("zod").ZodArray<import("zod").ZodObject<{
9629
+ day: import("zod").ZodNumber;
9630
+ scheduled: import("zod").ZodNumber;
9631
+ backlog: import("zod").ZodNumber;
9632
+ backlogRSum: import("zod").ZodNumber;
9633
+ surplusIn: import("zod").ZodNumber;
9634
+ surplusRSum: import("zod").ZodNumber;
9635
+ surplusStay: import("zod").ZodNumber;
9636
+ surplusOut: import("zod").ZodNumber;
9637
+ }, import("zod/v4/core").$strip>>;
9638
+ postponedAgain: import("zod").ZodObject<{
9639
+ count: import("zod").ZodNumber;
9640
+ rSum: import("zod").ZodNumber;
9641
+ }, import("zod/v4/core").$strip>;
9642
+ }, import("zod/v4/core").$strip>>;
9643
+ }, import("zod/v4/core").$strip>>;
9644
+ skipped: import("zod").ZodObject<{
9645
+ belowFloor: import("zod").ZodNumber;
9646
+ maxInterval: import("zod").ZodNumber;
9647
+ invalid: import("zod").ZodNumber;
9648
+ }, import("zod/v4/core").$strip>;
9649
+ }, import("zod/v4/core").$strip>>;
9650
+ baseline: import("zod").ZodArray<import("zod").ZodObject<{
9651
+ day: import("zod").ZodNumber;
9652
+ scheduled: import("zod").ZodNumber;
9653
+ rSum: import("zod").ZodNullable<import("zod").ZodNumber>;
9654
+ }, import("zod/v4/core").$strip>>;
9655
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
9656
+ status: import("zod").ZodLiteral<"quotaZero">;
9657
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
9658
+ status: import("zod").ZodLiteral<"invalidWeights">;
9659
+ }, import("zod/v4/core").$strip>], "status">, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "NOTEBASE_NOT_FOUND" | "RESCHEDULE_DAILY_LIMIT_INVALID" | "RESCHEDULE_PREVIEW_TIMEOUT">>, Record<never, never>>;
9660
+ applyPostpone: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
9661
+ notebaseId: import("zod").ZodUUID;
9662
+ planId: import("zod").ZodString;
9663
+ unlimited: import("zod").ZodOptional<import("zod").ZodBoolean>;
9664
+ threshold: import("zod").ZodNumber;
9665
+ flatten: import("zod").ZodOptional<import("zod").ZodBoolean>;
9666
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
9667
+ moved: import("zod").ZodNumber;
9668
+ txid: import("zod").ZodNullable<import("zod").ZodNumber>;
9669
+ reviewsPerDay: import("zod").ZodNumber;
9670
+ }, import("zod/v4/core").$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "NOTEBASE_NOT_FOUND" | "RESCHEDULE_PLAN_EXPIRED" | "RESCHEDULE_STALE">>, Record<never, never>>;
8111
9671
  };
8112
9672
  stats: {
8113
9673
  activity: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
@@ -8155,6 +9715,17 @@ export declare const contract: {
8155
9715
  delta: import("zod").ZodNumber;
8156
9716
  }, import("zod/v4/core").$strict>>;
8157
9717
  }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "NOTEBASE_NOT_FOUND">>, Record<never, never>>;
9718
+ backlogStats: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
9719
+ notebaseIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUUID>>;
9720
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
9721
+ }, import("zod/v4/core").$strict>, import("zod").ZodRecord<import("zod").ZodUUID, import("zod").ZodObject<{
9722
+ overdueReviewCount: import("zod").ZodNumber;
9723
+ dailyLimit: import("zod").ZodNumber;
9724
+ backlogDays: import("zod").ZodNumber;
9725
+ }, import("zod/v4/core").$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "NOTEBASE_NOT_FOUND">>, {
9726
+ summary: string;
9727
+ description: string;
9728
+ } & Record<never, never>>;
8158
9729
  };
8159
9730
  user: {
8160
9731
  ensureTimezone: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{