@read-frog/api-contract 0.21.1 → 0.23.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
@@ -1,6 +1,6 @@
1
1
  import { ContractRouterClient, ErrorMap, Route } from "@orpc/contract";
2
- import { CardState, ReviewRating, SRS_REVIEW_DURATION_MS_MAX, ScheduleStatus, SchedulingParams, cardStateSchema, reviewRatingSchema, scheduleStatusSchema, schedulingParamsSchema } from "@read-frog/definitions";
3
2
  import { z } from "zod";
3
+ import { CardState, ReviewRating, SRS_REVIEW_DURATION_MS_MAX, ScheduleStatus, SchedulingParams, cardStateSchema, reviewRatingSchema, scheduleStatusSchema, schedulingParamsSchema } from "@read-frog/definitions";
4
4
  //#region src/contracts/shared.d.ts
5
5
  /**
6
6
  * A documented business route shared by OpenAPI and agent-facing adapters.
@@ -87,6 +87,10 @@ export declare const HostedAiTierRestrictedDataSchema: z.ZodObject<{
87
87
  advance: "advance";
88
88
  normal: "normal";
89
89
  }>;
90
+ upgradeTo: z.ZodEnum<{
91
+ pro: "pro";
92
+ ultra: "ultra";
93
+ }>;
90
94
  }, z.core.$strict>;
91
95
  export declare const HostedAiQuotaExhaustedDataSchema: z.ZodObject<{
92
96
  modelTier: z.ZodEnum<{
@@ -125,6 +129,10 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
125
129
  advance: "advance";
126
130
  normal: "normal";
127
131
  }>;
132
+ upgradeTo: z.ZodEnum<{
133
+ pro: "pro";
134
+ ultra: "ultra";
135
+ }>;
128
136
  }, z.core.$strict>;
129
137
  readonly message: "This Built-in AI tier is not available for this account";
130
138
  readonly status: 403;
@@ -147,18 +155,10 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
147
155
  readonly message: "Built-in AI credit exhausted";
148
156
  readonly status: 429;
149
157
  };
150
- readonly NOTEBASE_BETA_RESTRICTED: {
151
- readonly message: "Notebase is currently in beta for selected accounts";
152
- readonly status: 403;
153
- };
154
158
  readonly NOTEBASE_NOT_FOUND: {
155
159
  readonly message: "Notebase not found";
156
160
  readonly status: 404;
157
161
  };
158
- readonly VIDEO_TRANSCRIPTION_BETA_RESTRICTED: {
159
- readonly message: "Video transcription is currently in beta for selected accounts";
160
- readonly status: 403;
161
- };
162
162
  readonly VIDEO_TRANSCRIPTION_SUBSCRIPTION_REQUIRED: {
163
163
  readonly message: "AI subtitles require a Pro or Ultra subscription";
164
164
  readonly status: 403;
@@ -348,6 +348,10 @@ export declare const PUBLIC_APP_ERROR_DEFS: {
348
348
  readonly message: "Ebook upload has not been completed";
349
349
  readonly status: 409;
350
350
  };
351
+ readonly EMAIL_LINK_INVALID: {
352
+ readonly message: "This email link is not valid";
353
+ readonly status: 400;
354
+ };
351
355
  };
352
356
  export type PublicAppErrorCode = keyof typeof PUBLIC_APP_ERROR_DEFS;
353
357
  export type PublicAppErrorData<TCode extends PublicAppErrorCode> = (typeof PUBLIC_APP_ERROR_DEFS)[TCode] extends {
@@ -373,6 +377,10 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
373
377
  advance: "advance";
374
378
  normal: "normal";
375
379
  }>;
380
+ upgradeTo: z.ZodEnum<{
381
+ pro: "pro";
382
+ ultra: "ultra";
383
+ }>;
376
384
  }, z.core.$strict>;
377
385
  readonly message: "This Built-in AI tier is not available for this account";
378
386
  readonly status: 403;
@@ -395,18 +403,10 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
395
403
  readonly message: "Built-in AI credit exhausted";
396
404
  readonly status: 429;
397
405
  };
398
- readonly NOTEBASE_BETA_RESTRICTED: {
399
- readonly message: "Notebase is currently in beta for selected accounts";
400
- readonly status: 403;
401
- };
402
406
  readonly NOTEBASE_NOT_FOUND: {
403
407
  readonly message: "Notebase not found";
404
408
  readonly status: 404;
405
409
  };
406
- readonly VIDEO_TRANSCRIPTION_BETA_RESTRICTED: {
407
- readonly message: "Video transcription is currently in beta for selected accounts";
408
- readonly status: 403;
409
- };
410
410
  readonly VIDEO_TRANSCRIPTION_SUBSCRIPTION_REQUIRED: {
411
411
  readonly message: "AI subtitles require a Pro or Ultra subscription";
412
412
  readonly status: 403;
@@ -596,33 +596,31 @@ export declare function getPublicErrorDefinition<TCode extends PublicAppErrorCod
596
596
  readonly message: "Ebook upload has not been completed";
597
597
  readonly status: 409;
598
598
  };
599
+ readonly EMAIL_LINK_INVALID: {
600
+ readonly message: "This email link is not valid";
601
+ readonly status: 400;
602
+ };
599
603
  }[TCode];
600
604
  export declare function pickPublicErrorMap<const TCodes extends readonly PublicAppErrorCode[]>(...codes: TCodes): Pick<ErrorMap, TCodes[number]>;
601
605
  //#endregion
602
- //#region src/schemas/beta-access.d.ts
603
- export declare const BetaFeatureKeySchema: z.ZodEnum<{
604
- ebook: "ebook";
605
- notebase: "notebase";
606
- videoTranscription: "videoTranscription";
606
+ //#region src/schemas/app-locale.d.ts
607
+ /**
608
+ * The languages the website is in (`project.inlang/settings.json`; a test in
609
+ * apps/www keeps the two in step). Used wherever the server writes for a
610
+ * person: Stripe pages, emails, and the account's `locale`.
611
+ */
612
+ export declare const appLocaleSchema: z.ZodEnum<{
613
+ en: "en";
614
+ es: "es";
615
+ ja: "ja";
616
+ ko: "ko";
617
+ ru: "ru";
618
+ tr: "tr";
619
+ vi: "vi";
620
+ zh: "zh";
621
+ "zh-TW": "zh-TW";
607
622
  }>;
608
- export type BetaFeatureKey = z.infer<typeof BetaFeatureKeySchema>;
609
- export declare const BetaAccessStatusInputSchema: z.ZodObject<{
610
- featureKey: z.ZodEnum<{
611
- ebook: "ebook";
612
- notebase: "notebase";
613
- videoTranscription: "videoTranscription";
614
- }>;
615
- }, z.core.$strict>;
616
- export type BetaAccessStatusInput = z.infer<typeof BetaAccessStatusInputSchema>;
617
- export declare const BetaAccessStatusOutputSchema: z.ZodObject<{
618
- featureKey: z.ZodEnum<{
619
- ebook: "ebook";
620
- notebase: "notebase";
621
- videoTranscription: "videoTranscription";
622
- }>;
623
- allowed: z.ZodBoolean;
624
- }, z.core.$strip>;
625
- export type BetaAccessStatusOutput = z.infer<typeof BetaAccessStatusOutputSchema>;
623
+ export type AppLocale = z.infer<typeof appLocaleSchema>;
626
624
  //#endregion
627
625
  //#region src/schemas/billing.d.ts
628
626
  export declare const billingIntervalSchema: z.ZodEnum<{
@@ -648,27 +646,20 @@ export declare const billingPlanSchema: z.ZodEnum<{
648
646
  }>;
649
647
  export type BillingPlan = z.infer<typeof billingPlanSchema>;
650
648
  /**
651
- * Whether a plan may use a feature, given the plans that feature allows.
652
- *
653
- * An explicit set rather than a minimum tier: there is no rank table to keep in
654
- * step with the plan enum, and any combination is expressible by writing it
655
- * down. The cost is that nothing derives from it automatically -- a feature's
656
- * pricing-card placement is a companion edit, noted at each `*_ALLOWED_PLANS`.
657
- */
658
- export declare function isPlanAllowed(plan: BillingPlan, allowed: readonly BillingPlan[]): boolean;
659
- /**
660
- * Plans that may use the remote MCP server.
649
+ * How many MCP tool calls each plan may make in a day (24 hours from the first
650
+ * one); `null` is no limit. Each `tools/call` counts once, whatever the tool.
661
651
  *
662
- * Read by the server-side gate AND by the website's copy, so the page cannot
663
- * promise access the API refuses. `satisfies` keeps the literal tuple type so
664
- * the UI can render the plan names from this constant instead of hardcoding
665
- * them.
652
+ * Read by the MCP server's gate AND by the website's copy, so the pages cannot
653
+ * promise calls the server refuses.
666
654
  *
667
- * Companion edit when this changes: the feature bullet in
668
- * `apps/www/src/routes/pricing.tsx` lives on the lowest allowed plan's card
669
- * (higher cards inherit it through their "everything in <lower plan>" line).
655
+ * Companion edit when this changes: the MCP docs under
656
+ * `apps/www/content/docs/mcp/` and `account-and-plans`, which state the numbers.
670
657
  */
671
- export declare const MCP_ALLOWED_PLANS: readonly ["ultra"];
658
+ export declare const MCP_DAILY_CALL_LIMITS: {
659
+ readonly free: 10;
660
+ readonly pro: 50;
661
+ readonly ultra: null;
662
+ };
672
663
  export declare const billingCheckoutPlanSchema: z.ZodEnum<{
673
664
  pro: "pro";
674
665
  ultra: "ultra";
@@ -691,7 +682,7 @@ export declare const billingLocaleSchema: z.ZodEnum<{
691
682
  zh: "zh";
692
683
  "zh-TW": "zh-TW";
693
684
  }>;
694
- export type BillingLocale = z.infer<typeof billingLocaleSchema>;
685
+ export type BillingLocale = AppLocale;
695
686
  export declare const billingAccessSourceSchema: z.ZodEnum<{
696
687
  pass: "pass";
697
688
  subscription: "subscription";
@@ -709,6 +700,26 @@ export declare const billingScheduledChangeSchema: z.ZodObject<{
709
700
  effectiveAt: z.ZodCoercedDate<unknown>;
710
701
  }, z.core.$strict>;
711
702
  export type BillingScheduledChange = z.infer<typeof billingScheduledChangeSchema>;
703
+ /**
704
+ * The zone a payment deadline is shown in, as a date with no time. UTC−12 is
705
+ * the last zone to finish a day, and `dueBy` is the end of a day there, so the
706
+ * date it shows stays open in every customer's zone until their own midnight.
707
+ */
708
+ export declare const BILLING_PAYMENT_DUE_TIME_ZONE = "Etc/GMT+12";
709
+ /**
710
+ * A renewal whose payment failed. The plan stays until `dueBy`; paying the
711
+ * invoice before then (or later, until the subscription is canceled) restores
712
+ * the subscription as if the payment had gone through.
713
+ */
714
+ export declare const billingPaymentDueSchema: z.ZodObject<{
715
+ dueBy: z.ZodCoercedDate<unknown>;
716
+ plan: z.ZodEnum<{
717
+ pro: "pro";
718
+ ultra: "ultra";
719
+ }>;
720
+ url: z.ZodNullable<z.ZodURL>;
721
+ }, z.core.$strict>;
722
+ export type BillingPaymentDue = z.infer<typeof billingPaymentDueSchema>;
712
723
  export declare const billingStatusSchema: z.ZodObject<{
713
724
  plan: z.ZodEnum<{
714
725
  free: "free";
@@ -746,6 +757,14 @@ export declare const billingStatusSchema: z.ZodObject<{
746
757
  }>;
747
758
  effectiveAt: z.ZodCoercedDate<unknown>;
748
759
  }, z.core.$strict>>;
760
+ paymentDue: z.ZodNullable<z.ZodObject<{
761
+ dueBy: z.ZodCoercedDate<unknown>;
762
+ plan: z.ZodEnum<{
763
+ pro: "pro";
764
+ ultra: "ultra";
765
+ }>;
766
+ url: z.ZodNullable<z.ZodURL>;
767
+ }, z.core.$strict>>;
749
768
  unlimitedNotebaseNotes: z.ZodBoolean;
750
769
  notebaseNoteLimit: z.ZodNumber;
751
770
  notebaseNoteCount: z.ZodNumber;
@@ -1362,31 +1381,35 @@ export declare const ebookRequestUploadInputSchema: z.ZodObject<{
1362
1381
  title: z.ZodString;
1363
1382
  author: z.ZodOptional<z.ZodString>;
1364
1383
  language: z.ZodOptional<z.ZodString>;
1365
- coverContentType: z.ZodOptional<z.ZodEnum<{
1366
- "image/jpeg": "image/jpeg";
1367
- "image/png": "image/png";
1368
- "image/webp": "image/webp";
1369
- }>>;
1384
+ fileByteSize: z.ZodNumber;
1385
+ cover: z.ZodOptional<z.ZodObject<{
1386
+ contentType: z.ZodEnum<{
1387
+ "image/jpeg": "image/jpeg";
1388
+ "image/png": "image/png";
1389
+ "image/webp": "image/webp";
1390
+ }>;
1391
+ byteSize: z.ZodNumber;
1392
+ }, z.core.$strict>>;
1370
1393
  }, z.core.$strict>;
1371
1394
  export type EbookRequestUploadInput = z.infer<typeof ebookRequestUploadInputSchema>;
1372
1395
  /**
1373
- * S3 POST form policy. `fields` must be appended to the form in iteration order
1374
- * with the file last; S3 ignores anything sent after the `file` part.
1396
+ * A signed PUT: send the file to `url` with exactly `headers`. The signature
1397
+ * covers the file's type and exact size, so storage refuses any other file.
1375
1398
  */
1376
- export declare const ebookPresignedPostSchema: z.ZodObject<{
1399
+ export declare const ebookPresignedUploadSchema: z.ZodObject<{
1377
1400
  url: z.ZodURL;
1378
- fields: z.ZodRecord<z.ZodString, z.ZodString>;
1401
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
1379
1402
  }, z.core.$strict>;
1380
- export type EbookPresignedPost = z.infer<typeof ebookPresignedPostSchema>;
1403
+ export type EbookPresignedUpload = z.infer<typeof ebookPresignedUploadSchema>;
1381
1404
  export declare const ebookRequestUploadOutputSchema: z.ZodObject<{
1382
1405
  ebookId: z.ZodUUID;
1383
1406
  upload: z.ZodObject<{
1384
1407
  url: z.ZodURL;
1385
- fields: z.ZodRecord<z.ZodString, z.ZodString>;
1408
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
1386
1409
  }, z.core.$strict>;
1387
1410
  coverUpload: z.ZodNullable<z.ZodObject<{
1388
1411
  url: z.ZodURL;
1389
- fields: z.ZodRecord<z.ZodString, z.ZodString>;
1412
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
1390
1413
  }, z.core.$strict>>;
1391
1414
  expiresAt: z.ZodCoercedDate<unknown>;
1392
1415
  }, z.core.$strict>;
@@ -1477,6 +1500,133 @@ export declare const ebookDeleteOutputSchema: z.ZodObject<{
1477
1500
  }, z.core.$strict>;
1478
1501
  export type EbookDeleteOutput = z.infer<typeof ebookDeleteOutputSchema>;
1479
1502
  //#endregion
1503
+ //#region src/schemas/email-preferences.d.ts
1504
+ /** A category's key, such as `promotions`. */
1505
+ export declare const emailCategoryKeySchema: z.ZodString;
1506
+ export type EmailCategoryKey = z.infer<typeof emailCategoryKeySchema>;
1507
+ /** The token in an email's unsubscribe link. */
1508
+ export declare const emailLinkTokenSchema: z.ZodString;
1509
+ export declare const emailCategoryStateSchema: z.ZodObject<{
1510
+ key: z.ZodString;
1511
+ name: z.ZodString;
1512
+ description: z.ZodNullable<z.ZodString>;
1513
+ commercial: z.ZodBoolean;
1514
+ required: z.ZodBoolean;
1515
+ subscribed: z.ZodBoolean;
1516
+ }, z.core.$strict>;
1517
+ export type EmailCategoryState = z.infer<typeof emailCategoryStateSchema>;
1518
+ export declare const emailPreferencesStateSchema: z.ZodObject<{
1519
+ categories: z.ZodArray<z.ZodObject<{
1520
+ key: z.ZodString;
1521
+ name: z.ZodString;
1522
+ description: z.ZodNullable<z.ZodString>;
1523
+ commercial: z.ZodBoolean;
1524
+ required: z.ZodBoolean;
1525
+ subscribed: z.ZodBoolean;
1526
+ }, z.core.$strict>>;
1527
+ unsubscribedAll: z.ZodBoolean;
1528
+ }, z.core.$strict>;
1529
+ export type EmailPreferencesState = z.infer<typeof emailPreferencesStateSchema>;
1530
+ /**
1531
+ * What the page a link opens shows on top of the state: whose preferences they
1532
+ * are, without the full address, and the category the link was for, if any.
1533
+ */
1534
+ export declare const emailPreferencesByTokenStateSchema: z.ZodObject<{
1535
+ categories: z.ZodArray<z.ZodObject<{
1536
+ key: z.ZodString;
1537
+ name: z.ZodString;
1538
+ description: z.ZodNullable<z.ZodString>;
1539
+ commercial: z.ZodBoolean;
1540
+ required: z.ZodBoolean;
1541
+ subscribed: z.ZodBoolean;
1542
+ }, z.core.$strict>>;
1543
+ unsubscribedAll: z.ZodBoolean;
1544
+ maskedEmail: z.ZodString;
1545
+ highlightCategory: z.ZodNullable<z.ZodString>;
1546
+ }, z.core.$strict>;
1547
+ export type EmailPreferencesByTokenState = z.infer<typeof emailPreferencesByTokenStateSchema>;
1548
+ export declare const emailPreferencesGetInputSchema: z.ZodObject<{
1549
+ locale: z.ZodEnum<{
1550
+ en: "en";
1551
+ es: "es";
1552
+ ja: "ja";
1553
+ ko: "ko";
1554
+ ru: "ru";
1555
+ tr: "tr";
1556
+ vi: "vi";
1557
+ zh: "zh";
1558
+ "zh-TW": "zh-TW";
1559
+ }>;
1560
+ }, z.core.$strict>;
1561
+ export type EmailPreferencesGetInput = z.infer<typeof emailPreferencesGetInputSchema>;
1562
+ export declare const emailPreferencesUpdateInputSchema: z.ZodObject<{
1563
+ categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1564
+ unsubscribedAll: z.ZodOptional<z.ZodBoolean>;
1565
+ locale: z.ZodEnum<{
1566
+ en: "en";
1567
+ es: "es";
1568
+ ja: "ja";
1569
+ ko: "ko";
1570
+ ru: "ru";
1571
+ tr: "tr";
1572
+ vi: "vi";
1573
+ zh: "zh";
1574
+ "zh-TW": "zh-TW";
1575
+ }>;
1576
+ }, z.core.$strict>;
1577
+ export type EmailPreferencesUpdateInput = z.infer<typeof emailPreferencesUpdateInputSchema>;
1578
+ export declare const emailPreferencesGetByTokenInputSchema: z.ZodObject<{
1579
+ token: z.ZodString;
1580
+ locale: z.ZodEnum<{
1581
+ en: "en";
1582
+ es: "es";
1583
+ ja: "ja";
1584
+ ko: "ko";
1585
+ ru: "ru";
1586
+ tr: "tr";
1587
+ vi: "vi";
1588
+ zh: "zh";
1589
+ "zh-TW": "zh-TW";
1590
+ }>;
1591
+ }, z.core.$strict>;
1592
+ export type EmailPreferencesGetByTokenInput = z.infer<typeof emailPreferencesGetByTokenInputSchema>;
1593
+ export declare const emailPreferencesUpdateByTokenInputSchema: z.ZodObject<{
1594
+ categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1595
+ unsubscribedAll: z.ZodOptional<z.ZodBoolean>;
1596
+ token: z.ZodString;
1597
+ locale: z.ZodEnum<{
1598
+ en: "en";
1599
+ es: "es";
1600
+ ja: "ja";
1601
+ ko: "ko";
1602
+ ru: "ru";
1603
+ tr: "tr";
1604
+ vi: "vi";
1605
+ zh: "zh";
1606
+ "zh-TW": "zh-TW";
1607
+ }>;
1608
+ }, z.core.$strict>;
1609
+ export type EmailPreferencesUpdateByTokenInput = z.infer<typeof emailPreferencesUpdateByTokenInputSchema>;
1610
+ //#endregion
1611
+ //#region src/schemas/feature-access.d.ts
1612
+ export declare const GatedFeatureKeySchema: z.ZodEnum<{
1613
+ ebook: "ebook";
1614
+ }>;
1615
+ export type GatedFeatureKey = z.infer<typeof GatedFeatureKeySchema>;
1616
+ export declare const FeatureAccessStatusInputSchema: z.ZodObject<{
1617
+ featureKey: z.ZodEnum<{
1618
+ ebook: "ebook";
1619
+ }>;
1620
+ }, z.core.$strict>;
1621
+ export type FeatureAccessStatusInput = z.infer<typeof FeatureAccessStatusInputSchema>;
1622
+ export declare const FeatureAccessStatusOutputSchema: z.ZodObject<{
1623
+ featureKey: z.ZodEnum<{
1624
+ ebook: "ebook";
1625
+ }>;
1626
+ allowed: z.ZodBoolean;
1627
+ }, z.core.$strip>;
1628
+ export type FeatureAccessStatusOutput = z.infer<typeof FeatureAccessStatusOutputSchema>;
1629
+ //#endregion
1480
1630
  //#region src/schemas/hosted-ai.d.ts
1481
1631
  export declare const HostedAiOutputFieldTypeSchema: z.ZodEnum<{
1482
1632
  number: "number";
@@ -1598,12 +1748,26 @@ export declare const HOSTED_AI_CLIENT_STREAM_PART_TYPES: readonly ["text-delta",
1598
1748
  * useful response rather than a validation error.
1599
1749
  */
1600
1750
  export declare const HostedAiStatusInputSchema: z.ZodObject<{}, z.core.$strip>;
1751
+ /**
1752
+ * `pro_required` means the Pro plan or any plan above it; `ultra_required`
1753
+ * means Ultra. Appended last, so a client that predates a value falls back on
1754
+ * its own default instead of misreading it.
1755
+ */
1601
1756
  export declare const HostedAiUnavailableReasonSchema: z.ZodEnum<{
1602
1757
  authentication_required: "authentication_required";
1758
+ pro_required: "pro_required";
1603
1759
  quota_exhausted: "quota_exhausted";
1604
1760
  service_unavailable: "service_unavailable";
1605
1761
  ultra_required: "ultra_required";
1606
1762
  }>;
1763
+ /**
1764
+ * The cheapest plan an account would need to buy for something it cannot use
1765
+ * now. Any plan above it works too, so `pro` reads as "Pro or Ultra".
1766
+ */
1767
+ export declare const HostedAiUpgradePlanSchema: z.ZodEnum<{
1768
+ pro: "pro";
1769
+ ultra: "ultra";
1770
+ }>;
1607
1771
  export declare const HostedAiCreditPolicyIdSchema: z.ZodEnum<{
1608
1772
  "custom-action-guest-daily-v1": "custom-action-guest-daily-v1";
1609
1773
  "custom-action-pro-daily-v1": "custom-action-pro-daily-v1";
@@ -1639,13 +1803,16 @@ export declare const HostedAiRateLimitErrorDataSchema: z.ZodObject<{
1639
1803
  }>;
1640
1804
  }, z.core.$strip>;
1641
1805
  /**
1806
+ * A recurring pool: the plan's credit for a day or a week, which refills at
1807
+ * `resetAt`.
1808
+ *
1642
1809
  * Deliberately free of dollar amounts and of the versioned policy id. Clients
1643
1810
  * render a consumption bar and a reset time, so a percentage and a period kind
1644
1811
  * are all they need, and neither leaks what a call costs us. `usedPercent`
1645
1812
  * counts settled spend only: including in-flight reservations would make the
1646
1813
  * bar jump forward and then back as each stream settles.
1647
1814
  */
1648
- export declare const HostedAiCreditStatusSchema: z.ZodObject<{
1815
+ export declare const HostedAiRecurringCreditStatusSchema: z.ZodObject<{
1649
1816
  periodKind: z.ZodEnum<{
1650
1817
  daily: "daily";
1651
1818
  weekly: "weekly";
@@ -1662,15 +1829,76 @@ export declare const HostedAiCreditStatusSchema: z.ZodObject<{
1662
1829
  videoSubtitles: "videoSubtitles";
1663
1830
  }>>;
1664
1831
  }, z.core.$strict>;
1832
+ /**
1833
+ * A one-time pool, such as credit from a campaign or from support. It never
1834
+ * refills: once spent or past `expiresAt` it is gone, so a client shows the
1835
+ * expiry, not a reset. It is drawn on only after the plan's own pool for a
1836
+ * feature is spent, or for a feature the plan does not fund. Listed until it
1837
+ * expires, even when spent. Same fields as a recurring pool otherwise.
1838
+ */
1839
+ export declare const HostedAiOneTimeCreditStatusSchema: z.ZodObject<{
1840
+ periodKind: z.ZodLiteral<"once">;
1841
+ usedPercent: z.ZodNumber;
1842
+ expiresAt: z.ZodISODateTime;
1843
+ features: z.ZodArray<z.ZodEnum<{
1844
+ customAction: "customAction";
1845
+ inputTranslation: "inputTranslation";
1846
+ languageDetection: "languageDetection";
1847
+ noteSuggestion: "noteSuggestion";
1848
+ pageTranslation: "pageTranslation";
1849
+ selectionTranslation: "selectionTranslation";
1850
+ videoSubtitles: "videoSubtitles";
1851
+ }>>;
1852
+ }, z.core.$strict>;
1853
+ /**
1854
+ * One pool that can pay for Built-in AI, told apart by `periodKind`: a
1855
+ * recurring `daily` or `weekly` pool refills at `resetAt`, a one-time (`once`)
1856
+ * pool ends at `expiresAt`. Narrow on `periodKind` before reading either.
1857
+ */
1858
+ export declare const HostedAiCreditPoolStatusSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1859
+ periodKind: z.ZodEnum<{
1860
+ daily: "daily";
1861
+ weekly: "weekly";
1862
+ }>;
1863
+ usedPercent: z.ZodNumber;
1864
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
1865
+ features: z.ZodArray<z.ZodEnum<{
1866
+ customAction: "customAction";
1867
+ inputTranslation: "inputTranslation";
1868
+ languageDetection: "languageDetection";
1869
+ noteSuggestion: "noteSuggestion";
1870
+ pageTranslation: "pageTranslation";
1871
+ selectionTranslation: "selectionTranslation";
1872
+ videoSubtitles: "videoSubtitles";
1873
+ }>>;
1874
+ }, z.core.$strict>, z.ZodObject<{
1875
+ periodKind: z.ZodLiteral<"once">;
1876
+ usedPercent: z.ZodNumber;
1877
+ expiresAt: z.ZodISODateTime;
1878
+ features: z.ZodArray<z.ZodEnum<{
1879
+ customAction: "customAction";
1880
+ inputTranslation: "inputTranslation";
1881
+ languageDetection: "languageDetection";
1882
+ noteSuggestion: "noteSuggestion";
1883
+ pageTranslation: "pageTranslation";
1884
+ selectionTranslation: "selectionTranslation";
1885
+ videoSubtitles: "videoSubtitles";
1886
+ }>>;
1887
+ }, z.core.$strict>], "periodKind">;
1665
1888
  export declare const HostedAiTierStatusSchema: z.ZodObject<{
1666
1889
  accessAllowed: z.ZodBoolean;
1667
1890
  available: z.ZodBoolean;
1668
1891
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1669
1892
  authentication_required: "authentication_required";
1893
+ pro_required: "pro_required";
1670
1894
  quota_exhausted: "quota_exhausted";
1671
1895
  service_unavailable: "service_unavailable";
1672
1896
  ultra_required: "ultra_required";
1673
1897
  }>>;
1898
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
1899
+ pro: "pro";
1900
+ ultra: "ultra";
1901
+ }>>;
1674
1902
  requiresUltra: z.ZodBoolean;
1675
1903
  modelRevision: z.ZodString;
1676
1904
  }, z.core.$strict>;
@@ -1680,10 +1908,15 @@ export declare const HostedAiFeatureStatusSchema: z.ZodObject<{
1680
1908
  available: z.ZodBoolean;
1681
1909
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1682
1910
  authentication_required: "authentication_required";
1911
+ pro_required: "pro_required";
1683
1912
  quota_exhausted: "quota_exhausted";
1684
1913
  service_unavailable: "service_unavailable";
1685
1914
  ultra_required: "ultra_required";
1686
1915
  }>>;
1916
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
1917
+ pro: "pro";
1918
+ ultra: "ultra";
1919
+ }>>;
1687
1920
  requiresUltra: z.ZodBoolean;
1688
1921
  modelRevision: z.ZodString;
1689
1922
  }, z.core.$strict>;
@@ -1692,10 +1925,15 @@ export declare const HostedAiFeatureStatusSchema: z.ZodObject<{
1692
1925
  available: z.ZodBoolean;
1693
1926
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1694
1927
  authentication_required: "authentication_required";
1928
+ pro_required: "pro_required";
1695
1929
  quota_exhausted: "quota_exhausted";
1696
1930
  service_unavailable: "service_unavailable";
1697
1931
  ultra_required: "ultra_required";
1698
1932
  }>>;
1933
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
1934
+ pro: "pro";
1935
+ ultra: "ultra";
1936
+ }>>;
1699
1937
  requiresUltra: z.ZodBoolean;
1700
1938
  modelRevision: z.ZodString;
1701
1939
  }, z.core.$strict>;
@@ -1718,6 +1956,36 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1718
1956
  videoSubtitles: "videoSubtitles";
1719
1957
  }>>;
1720
1958
  }, z.core.$strict>>;
1959
+ pools: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1960
+ periodKind: z.ZodEnum<{
1961
+ daily: "daily";
1962
+ weekly: "weekly";
1963
+ }>;
1964
+ usedPercent: z.ZodNumber;
1965
+ resetAt: z.ZodNullable<z.ZodISODateTime>;
1966
+ features: z.ZodArray<z.ZodEnum<{
1967
+ customAction: "customAction";
1968
+ inputTranslation: "inputTranslation";
1969
+ languageDetection: "languageDetection";
1970
+ noteSuggestion: "noteSuggestion";
1971
+ pageTranslation: "pageTranslation";
1972
+ selectionTranslation: "selectionTranslation";
1973
+ videoSubtitles: "videoSubtitles";
1974
+ }>>;
1975
+ }, z.core.$strict>, z.ZodObject<{
1976
+ periodKind: z.ZodLiteral<"once">;
1977
+ usedPercent: z.ZodNumber;
1978
+ expiresAt: z.ZodISODateTime;
1979
+ features: z.ZodArray<z.ZodEnum<{
1980
+ customAction: "customAction";
1981
+ inputTranslation: "inputTranslation";
1982
+ languageDetection: "languageDetection";
1983
+ noteSuggestion: "noteSuggestion";
1984
+ pageTranslation: "pageTranslation";
1985
+ selectionTranslation: "selectionTranslation";
1986
+ videoSubtitles: "videoSubtitles";
1987
+ }>>;
1988
+ }, z.core.$strict>], "periodKind">>;
1721
1989
  features: z.ZodObject<{
1722
1990
  pageTranslation: z.ZodObject<{
1723
1991
  normal: z.ZodObject<{
@@ -1725,10 +1993,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1725
1993
  available: z.ZodBoolean;
1726
1994
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1727
1995
  authentication_required: "authentication_required";
1996
+ pro_required: "pro_required";
1728
1997
  quota_exhausted: "quota_exhausted";
1729
1998
  service_unavailable: "service_unavailable";
1730
1999
  ultra_required: "ultra_required";
1731
2000
  }>>;
2001
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2002
+ pro: "pro";
2003
+ ultra: "ultra";
2004
+ }>>;
1732
2005
  requiresUltra: z.ZodBoolean;
1733
2006
  modelRevision: z.ZodString;
1734
2007
  }, z.core.$strict>;
@@ -1737,10 +2010,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1737
2010
  available: z.ZodBoolean;
1738
2011
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1739
2012
  authentication_required: "authentication_required";
2013
+ pro_required: "pro_required";
1740
2014
  quota_exhausted: "quota_exhausted";
1741
2015
  service_unavailable: "service_unavailable";
1742
2016
  ultra_required: "ultra_required";
1743
2017
  }>>;
2018
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2019
+ pro: "pro";
2020
+ ultra: "ultra";
2021
+ }>>;
1744
2022
  requiresUltra: z.ZodBoolean;
1745
2023
  modelRevision: z.ZodString;
1746
2024
  }, z.core.$strict>;
@@ -1751,10 +2029,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1751
2029
  available: z.ZodBoolean;
1752
2030
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1753
2031
  authentication_required: "authentication_required";
2032
+ pro_required: "pro_required";
1754
2033
  quota_exhausted: "quota_exhausted";
1755
2034
  service_unavailable: "service_unavailable";
1756
2035
  ultra_required: "ultra_required";
1757
2036
  }>>;
2037
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2038
+ pro: "pro";
2039
+ ultra: "ultra";
2040
+ }>>;
1758
2041
  requiresUltra: z.ZodBoolean;
1759
2042
  modelRevision: z.ZodString;
1760
2043
  }, z.core.$strict>;
@@ -1763,10 +2046,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1763
2046
  available: z.ZodBoolean;
1764
2047
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1765
2048
  authentication_required: "authentication_required";
2049
+ pro_required: "pro_required";
1766
2050
  quota_exhausted: "quota_exhausted";
1767
2051
  service_unavailable: "service_unavailable";
1768
2052
  ultra_required: "ultra_required";
1769
2053
  }>>;
2054
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2055
+ pro: "pro";
2056
+ ultra: "ultra";
2057
+ }>>;
1770
2058
  requiresUltra: z.ZodBoolean;
1771
2059
  modelRevision: z.ZodString;
1772
2060
  }, z.core.$strict>;
@@ -1777,10 +2065,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1777
2065
  available: z.ZodBoolean;
1778
2066
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1779
2067
  authentication_required: "authentication_required";
2068
+ pro_required: "pro_required";
1780
2069
  quota_exhausted: "quota_exhausted";
1781
2070
  service_unavailable: "service_unavailable";
1782
2071
  ultra_required: "ultra_required";
1783
2072
  }>>;
2073
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2074
+ pro: "pro";
2075
+ ultra: "ultra";
2076
+ }>>;
1784
2077
  requiresUltra: z.ZodBoolean;
1785
2078
  modelRevision: z.ZodString;
1786
2079
  }, z.core.$strict>;
@@ -1789,10 +2082,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1789
2082
  available: z.ZodBoolean;
1790
2083
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1791
2084
  authentication_required: "authentication_required";
2085
+ pro_required: "pro_required";
1792
2086
  quota_exhausted: "quota_exhausted";
1793
2087
  service_unavailable: "service_unavailable";
1794
2088
  ultra_required: "ultra_required";
1795
2089
  }>>;
2090
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2091
+ pro: "pro";
2092
+ ultra: "ultra";
2093
+ }>>;
1796
2094
  requiresUltra: z.ZodBoolean;
1797
2095
  modelRevision: z.ZodString;
1798
2096
  }, z.core.$strict>;
@@ -1803,10 +2101,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1803
2101
  available: z.ZodBoolean;
1804
2102
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1805
2103
  authentication_required: "authentication_required";
2104
+ pro_required: "pro_required";
1806
2105
  quota_exhausted: "quota_exhausted";
1807
2106
  service_unavailable: "service_unavailable";
1808
2107
  ultra_required: "ultra_required";
1809
2108
  }>>;
2109
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2110
+ pro: "pro";
2111
+ ultra: "ultra";
2112
+ }>>;
1810
2113
  requiresUltra: z.ZodBoolean;
1811
2114
  modelRevision: z.ZodString;
1812
2115
  }, z.core.$strict>;
@@ -1815,10 +2118,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1815
2118
  available: z.ZodBoolean;
1816
2119
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1817
2120
  authentication_required: "authentication_required";
2121
+ pro_required: "pro_required";
1818
2122
  quota_exhausted: "quota_exhausted";
1819
2123
  service_unavailable: "service_unavailable";
1820
2124
  ultra_required: "ultra_required";
1821
2125
  }>>;
2126
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2127
+ pro: "pro";
2128
+ ultra: "ultra";
2129
+ }>>;
1822
2130
  requiresUltra: z.ZodBoolean;
1823
2131
  modelRevision: z.ZodString;
1824
2132
  }, z.core.$strict>;
@@ -1829,10 +2137,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1829
2137
  available: z.ZodBoolean;
1830
2138
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1831
2139
  authentication_required: "authentication_required";
2140
+ pro_required: "pro_required";
1832
2141
  quota_exhausted: "quota_exhausted";
1833
2142
  service_unavailable: "service_unavailable";
1834
2143
  ultra_required: "ultra_required";
1835
2144
  }>>;
2145
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2146
+ pro: "pro";
2147
+ ultra: "ultra";
2148
+ }>>;
1836
2149
  requiresUltra: z.ZodBoolean;
1837
2150
  modelRevision: z.ZodString;
1838
2151
  }, z.core.$strict>;
@@ -1841,10 +2154,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1841
2154
  available: z.ZodBoolean;
1842
2155
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1843
2156
  authentication_required: "authentication_required";
2157
+ pro_required: "pro_required";
1844
2158
  quota_exhausted: "quota_exhausted";
1845
2159
  service_unavailable: "service_unavailable";
1846
2160
  ultra_required: "ultra_required";
1847
2161
  }>>;
2162
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2163
+ pro: "pro";
2164
+ ultra: "ultra";
2165
+ }>>;
1848
2166
  requiresUltra: z.ZodBoolean;
1849
2167
  modelRevision: z.ZodString;
1850
2168
  }, z.core.$strict>;
@@ -1855,10 +2173,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1855
2173
  available: z.ZodBoolean;
1856
2174
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1857
2175
  authentication_required: "authentication_required";
2176
+ pro_required: "pro_required";
1858
2177
  quota_exhausted: "quota_exhausted";
1859
2178
  service_unavailable: "service_unavailable";
1860
2179
  ultra_required: "ultra_required";
1861
2180
  }>>;
2181
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2182
+ pro: "pro";
2183
+ ultra: "ultra";
2184
+ }>>;
1862
2185
  requiresUltra: z.ZodBoolean;
1863
2186
  modelRevision: z.ZodString;
1864
2187
  }, z.core.$strict>;
@@ -1867,10 +2190,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1867
2190
  available: z.ZodBoolean;
1868
2191
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1869
2192
  authentication_required: "authentication_required";
2193
+ pro_required: "pro_required";
1870
2194
  quota_exhausted: "quota_exhausted";
1871
2195
  service_unavailable: "service_unavailable";
1872
2196
  ultra_required: "ultra_required";
1873
2197
  }>>;
2198
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2199
+ pro: "pro";
2200
+ ultra: "ultra";
2201
+ }>>;
1874
2202
  requiresUltra: z.ZodBoolean;
1875
2203
  modelRevision: z.ZodString;
1876
2204
  }, z.core.$strict>;
@@ -1881,10 +2209,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1881
2209
  available: z.ZodBoolean;
1882
2210
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1883
2211
  authentication_required: "authentication_required";
2212
+ pro_required: "pro_required";
1884
2213
  quota_exhausted: "quota_exhausted";
1885
2214
  service_unavailable: "service_unavailable";
1886
2215
  ultra_required: "ultra_required";
1887
2216
  }>>;
2217
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2218
+ pro: "pro";
2219
+ ultra: "ultra";
2220
+ }>>;
1888
2221
  requiresUltra: z.ZodBoolean;
1889
2222
  modelRevision: z.ZodString;
1890
2223
  }, z.core.$strict>;
@@ -1893,10 +2226,15 @@ export declare const HostedAiStatusOutputSchema: z.ZodObject<{
1893
2226
  available: z.ZodBoolean;
1894
2227
  unavailableReason: z.ZodNullable<z.ZodEnum<{
1895
2228
  authentication_required: "authentication_required";
2229
+ pro_required: "pro_required";
1896
2230
  quota_exhausted: "quota_exhausted";
1897
2231
  service_unavailable: "service_unavailable";
1898
2232
  ultra_required: "ultra_required";
1899
2233
  }>>;
2234
+ upgradeTo: z.ZodNullable<z.ZodEnum<{
2235
+ pro: "pro";
2236
+ ultra: "ultra";
2237
+ }>>;
1900
2238
  requiresUltra: z.ZodBoolean;
1901
2239
  modelRevision: z.ZodString;
1902
2240
  }, z.core.$strict>;
@@ -1914,11 +2252,14 @@ export type HostedAiNoteSuggestionObject = z.infer<typeof HostedAiNoteSuggestion
1914
2252
  export type HostedAiStreamPart = z.infer<typeof HostedAiStreamPartSchema>;
1915
2253
  export type HostedAiStatusInput = z.infer<typeof HostedAiStatusInputSchema>;
1916
2254
  export type HostedAiUnavailableReason = z.infer<typeof HostedAiUnavailableReasonSchema>;
2255
+ export type HostedAiUpgradePlan = z.infer<typeof HostedAiUpgradePlanSchema>;
1917
2256
  export type HostedAiCreditPolicyId = z.infer<typeof HostedAiCreditPolicyIdSchema>;
1918
2257
  export type HostedAiCreditPeriodKind = z.infer<typeof HostedAiCreditPeriodKindSchema>;
1919
2258
  export type HostedAiQuotaScope = z.infer<typeof HostedAiQuotaScopeSchema>;
1920
2259
  export type HostedAiRateLimitErrorData = z.infer<typeof HostedAiRateLimitErrorDataSchema>;
1921
- export type HostedAiCreditStatus = z.infer<typeof HostedAiCreditStatusSchema>;
2260
+ export type HostedAiRecurringCreditStatus = z.infer<typeof HostedAiRecurringCreditStatusSchema>;
2261
+ export type HostedAiOneTimeCreditStatus = z.infer<typeof HostedAiOneTimeCreditStatusSchema>;
2262
+ export type HostedAiCreditPoolStatus = z.infer<typeof HostedAiCreditPoolStatusSchema>;
1922
2263
  export type HostedAiTierStatus = z.infer<typeof HostedAiTierStatusSchema>;
1923
2264
  export type HostedAiFeatureStatus = z.infer<typeof HostedAiFeatureStatusSchema>;
1924
2265
  export type HostedAiStatusOutput = z.infer<typeof HostedAiStatusOutputSchema>;
@@ -2003,6 +2344,7 @@ export declare const notebaseSchema: z.ZodObject<{
2003
2344
  "FSRS-6": "FSRS-6";
2004
2345
  "FSRS-7": "FSRS-7";
2005
2346
  }>;
2347
+ srsSleepingAt: z.ZodNullable<z.ZodDate>;
2006
2348
  createdAt: z.ZodDate;
2007
2349
  updatedAt: z.ZodDate;
2008
2350
  }, z.core.$strip>;
@@ -2110,6 +2452,7 @@ export declare const NotebaseCreateOutputSchema: z.ZodObject<{
2110
2452
  "FSRS-6": "FSRS-6";
2111
2453
  "FSRS-7": "FSRS-7";
2112
2454
  }>;
2455
+ srsSleepingAt: z.ZodNullable<z.ZodDate>;
2113
2456
  createdAt: z.ZodDate;
2114
2457
  updatedAt: z.ZodDate;
2115
2458
  }, z.core.$strip>;
@@ -2150,12 +2493,22 @@ export declare const NotebaseUpdateOutputSchema: z.ZodObject<{
2150
2493
  "FSRS-6": "FSRS-6";
2151
2494
  "FSRS-7": "FSRS-7";
2152
2495
  }>;
2496
+ srsSleepingAt: z.ZodNullable<z.ZodDate>;
2153
2497
  createdAt: z.ZodDate;
2154
2498
  updatedAt: z.ZodDate;
2155
2499
  }, z.core.$strip>;
2156
2500
  txid: z.ZodNumber;
2157
2501
  }, z.core.$strip>;
2158
2502
  export type NotebaseUpdateOutput = z.infer<typeof NotebaseUpdateOutputSchema>;
2503
+ export declare const NotebaseSetSleepInputSchema: z.ZodObject<{
2504
+ id: z.ZodUUID;
2505
+ enabled: z.ZodBoolean;
2506
+ }, z.core.$strict>;
2507
+ export type NotebaseSetSleepInput = z.infer<typeof NotebaseSetSleepInputSchema>;
2508
+ export declare const NotebaseSetSleepOutputSchema: z.ZodObject<{
2509
+ txid: z.ZodNullable<z.ZodNumber>;
2510
+ }, z.core.$strip>;
2511
+ export type NotebaseSetSleepOutput = z.infer<typeof NotebaseSetSleepOutputSchema>;
2159
2512
  export declare const NotebaseDeleteInputSchema: z.ZodObject<{
2160
2513
  id: z.ZodUUID;
2161
2514
  }, z.core.$strip>;
@@ -2204,6 +2557,7 @@ export declare const NotebaseGetOutputSchema: z.ZodObject<{
2204
2557
  "FSRS-6": "FSRS-6";
2205
2558
  "FSRS-7": "FSRS-7";
2206
2559
  }>;
2560
+ srsSleepingAt: z.ZodNullable<z.ZodDate>;
2207
2561
  createdAt: z.ZodCoercedDate<unknown>;
2208
2562
  updatedAt: z.ZodCoercedDate<unknown>;
2209
2563
  notebaseColumns: z.ZodArray<z.ZodObject<{
@@ -4031,12 +4385,27 @@ export declare const speechSynthesizeInputSchema: z.ZodObject<{
4031
4385
  voice: z.ZodOptional<z.ZodString>;
4032
4386
  }, z.core.$strict>;
4033
4387
  export type SpeechSynthesizeInput = z.infer<typeof speechSynthesizeInputSchema>;
4034
- /** The audio, as an MP3 file. */
4035
- export declare const speechSynthesizeOutputSchema: z.ZodFile;
4388
+ /**
4389
+ * Where to download the audio, an MP3: a link to fetch at once, which stops
4390
+ * working at `expiresAt`.
4391
+ */
4392
+ export declare const speechSynthesizeOutputSchema: z.ZodObject<{
4393
+ url: z.ZodURL;
4394
+ expiresAt: z.ZodCoercedDate<unknown>;
4395
+ }, z.core.$strict>;
4396
+ export type SpeechSynthesizeOutput = z.infer<typeof speechSynthesizeOutputSchema>;
4036
4397
  //#endregion
4037
4398
  //#region src/schemas/timezone.d.ts
4038
4399
  export declare const timezoneSchema: z.ZodString;
4039
4400
  export type Timezone = z.infer<typeof timezoneSchema>;
4401
+ /**
4402
+ * The zone a call reckons days in, under the name an account's zone is stored
4403
+ * under (`canonicalTimeZone`): "Asia/Calcutta" arrives as "Asia/Kolkata" and
4404
+ * "CST" as "America/Chicago", names that Temporal and a Debian Postgres both
4405
+ * read. A fixed offset ("+08:00") is refused, as Postgres reads it with the
4406
+ * opposite sign and would put the call's days on the wrong side of UTC.
4407
+ */
4408
+ export declare const canonicalTimezoneSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4040
4409
  //#endregion
4041
4410
  //#region src/schemas/srs.d.ts
4042
4411
  export declare const stepSchema: z.ZodTemplateLiteral<`${number}d` | `${number}h` | `${number}m`>;
@@ -4057,7 +4426,7 @@ export declare const srsReviewInputSchema: z.ZodObject<{
4057
4426
  hard: "hard";
4058
4427
  }>;
4059
4428
  durationMs: z.ZodNumber;
4060
- timezone: z.ZodString;
4429
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4061
4430
  }, z.core.$strict>;
4062
4431
  export type SrsReviewInput = z.infer<typeof srsReviewInputSchema>;
4063
4432
  export declare const srsRollbackReviewInputSchema: z.ZodObject<{
@@ -4073,7 +4442,7 @@ export declare const srsScheduleStatusStatsSchema: z.ZodRecord<z.ZodEnum<{
4073
4442
  export type SrsScheduleStatusStats = z.infer<typeof srsScheduleStatusStatsSchema>;
4074
4443
  export declare const srsScheduleStatusStatsInputSchema: z.ZodObject<{
4075
4444
  notebaseIds: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
4076
- timezone: z.ZodString;
4445
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4077
4446
  }, z.core.$strict>;
4078
4447
  export type SrsScheduleStatusStatsInput = z.infer<typeof srsScheduleStatusStatsInputSchema>;
4079
4448
  export declare const srsScheduleStatusStatsOutputSchema: z.ZodRecord<z.ZodUUID, z.ZodRecord<z.ZodEnum<{
@@ -4083,7 +4452,7 @@ export declare const srsScheduleStatusStatsOutputSchema: z.ZodRecord<z.ZodUUID,
4083
4452
  }>, z.ZodNumber>>;
4084
4453
  export type SrsScheduleStatusStatsOutput = z.infer<typeof srsScheduleStatusStatsOutputSchema>;
4085
4454
  export declare const srsRecentNotebaseScheduleStatusStatsInputSchema: z.ZodObject<{
4086
- timezone: z.ZodString;
4455
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4087
4456
  }, z.core.$strict>;
4088
4457
  export type SrsRecentNotebaseScheduleStatusStatsInput = z.infer<typeof srsRecentNotebaseScheduleStatusStatsInputSchema>;
4089
4458
  /** Null when the user has no notebase yet. */
@@ -4446,7 +4815,7 @@ export declare const statsInputSchema: z.ZodObject<{
4446
4815
  notebaseIds: z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodUUID>, z.ZodTransform<string[], string[]>>>;
4447
4816
  from: z.ZodOptional<z.ZodISODate>;
4448
4817
  to: z.ZodISODate;
4449
- timezone: z.ZodString;
4818
+ timezone: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4450
4819
  }, z.core.$strict>;
4451
4820
  export type StatsInput = z.infer<typeof statsInputSchema>;
4452
4821
  export declare const activityStatsOutputSchema: z.ZodObject<{
@@ -4485,6 +4854,63 @@ export declare const userUpdateTimezoneOutputSchema: z.ZodObject<{
4485
4854
  timezone: z.ZodString;
4486
4855
  }, z.core.$strict>;
4487
4856
  export type UserUpdateTimezoneOutput = z.infer<typeof userUpdateTimezoneOutputSchema>;
4857
+ export declare const userEnsureLocaleInputSchema: z.ZodObject<{
4858
+ locale: z.ZodEnum<{
4859
+ en: "en";
4860
+ es: "es";
4861
+ ja: "ja";
4862
+ ko: "ko";
4863
+ ru: "ru";
4864
+ tr: "tr";
4865
+ vi: "vi";
4866
+ zh: "zh";
4867
+ "zh-TW": "zh-TW";
4868
+ }>;
4869
+ }, z.core.$strict>;
4870
+ export type UserEnsureLocaleInput = z.infer<typeof userEnsureLocaleInputSchema>;
4871
+ export declare const userEnsureLocaleOutputSchema: z.ZodObject<{
4872
+ locale: z.ZodEnum<{
4873
+ en: "en";
4874
+ es: "es";
4875
+ ja: "ja";
4876
+ ko: "ko";
4877
+ ru: "ru";
4878
+ tr: "tr";
4879
+ vi: "vi";
4880
+ zh: "zh";
4881
+ "zh-TW": "zh-TW";
4882
+ }>;
4883
+ updated: z.ZodBoolean;
4884
+ }, z.core.$strict>;
4885
+ export type UserEnsureLocaleOutput = z.infer<typeof userEnsureLocaleOutputSchema>;
4886
+ export declare const userUpdateLocaleInputSchema: z.ZodObject<{
4887
+ locale: z.ZodEnum<{
4888
+ en: "en";
4889
+ es: "es";
4890
+ ja: "ja";
4891
+ ko: "ko";
4892
+ ru: "ru";
4893
+ tr: "tr";
4894
+ vi: "vi";
4895
+ zh: "zh";
4896
+ "zh-TW": "zh-TW";
4897
+ }>;
4898
+ }, z.core.$strict>;
4899
+ export type UserUpdateLocaleInput = z.infer<typeof userUpdateLocaleInputSchema>;
4900
+ export declare const userUpdateLocaleOutputSchema: z.ZodObject<{
4901
+ locale: z.ZodEnum<{
4902
+ en: "en";
4903
+ es: "es";
4904
+ ja: "ja";
4905
+ ko: "ko";
4906
+ ru: "ru";
4907
+ tr: "tr";
4908
+ vi: "vi";
4909
+ zh: "zh";
4910
+ "zh-TW": "zh-TW";
4911
+ }>;
4912
+ }, z.core.$strict>;
4913
+ export type UserUpdateLocaleOutput = z.infer<typeof userUpdateLocaleOutputSchema>;
4488
4914
  //#endregion
4489
4915
  //#region src/schemas/video-transcript.d.ts
4490
4916
  export declare const videoTranscriptStatusSchema: z.ZodEnum<{
@@ -4580,22 +5006,6 @@ export declare const deletionResultSchema: z.ZodObject<{
4580
5006
  //#endregion
4581
5007
  //#region src/index.d.ts
4582
5008
  export declare const contract: {
4583
- betaAccess: {
4584
- status: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
4585
- featureKey: import("zod").ZodEnum<{
4586
- ebook: "ebook";
4587
- notebase: "notebase";
4588
- videoTranscription: "videoTranscription";
4589
- }>;
4590
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
4591
- featureKey: import("zod").ZodEnum<{
4592
- ebook: "ebook";
4593
- notebase: "notebase";
4594
- videoTranscription: "videoTranscription";
4595
- }>;
4596
- allowed: import("zod").ZodBoolean;
4597
- }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
4598
- };
4599
5009
  billing: {
4600
5010
  status: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, import("zod").ZodObject<{
4601
5011
  plan: import("zod").ZodEnum<{
@@ -4634,6 +5044,14 @@ export declare const contract: {
4634
5044
  }>;
4635
5045
  effectiveAt: import("zod").ZodCoercedDate<unknown>;
4636
5046
  }, import("zod/v4/core").$strict>>;
5047
+ paymentDue: import("zod").ZodNullable<import("zod").ZodObject<{
5048
+ dueBy: import("zod").ZodCoercedDate<unknown>;
5049
+ plan: import("zod").ZodEnum<{
5050
+ pro: "pro";
5051
+ ultra: "ultra";
5052
+ }>;
5053
+ url: import("zod").ZodNullable<import("zod").ZodURL>;
5054
+ }, import("zod/v4/core").$strict>>;
4637
5055
  unlimitedNotebaseNotes: import("zod").ZodBoolean;
4638
5056
  notebaseNoteLimit: import("zod").ZodNumber;
4639
5057
  notebaseNoteCount: import("zod").ZodNumber;
@@ -5081,23 +5499,27 @@ export declare const contract: {
5081
5499
  title: import("zod").ZodString;
5082
5500
  author: import("zod").ZodOptional<import("zod").ZodString>;
5083
5501
  language: import("zod").ZodOptional<import("zod").ZodString>;
5084
- coverContentType: import("zod").ZodOptional<import("zod").ZodEnum<{
5085
- "image/jpeg": "image/jpeg";
5086
- "image/png": "image/png";
5087
- "image/webp": "image/webp";
5088
- }>>;
5502
+ fileByteSize: import("zod").ZodNumber;
5503
+ cover: import("zod").ZodOptional<import("zod").ZodObject<{
5504
+ contentType: import("zod").ZodEnum<{
5505
+ "image/jpeg": "image/jpeg";
5506
+ "image/png": "image/png";
5507
+ "image/webp": "image/webp";
5508
+ }>;
5509
+ byteSize: import("zod").ZodNumber;
5510
+ }, import("zod/v4/core").$strict>>;
5089
5511
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5090
5512
  ebookId: import("zod").ZodUUID;
5091
5513
  upload: import("zod").ZodObject<{
5092
5514
  url: import("zod").ZodURL;
5093
- fields: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
5515
+ headers: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
5094
5516
  }, import("zod/v4/core").$strict>;
5095
5517
  coverUpload: import("zod").ZodNullable<import("zod").ZodObject<{
5096
5518
  url: import("zod").ZodURL;
5097
- fields: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
5519
+ headers: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
5098
5520
  }, import("zod/v4/core").$strict>>;
5099
5521
  expiresAt: import("zod").ZodCoercedDate<unknown>;
5100
- }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EBOOK_BETA_RESTRICTED" | "EBOOK_LIMIT_EXCEEDED">>, Record<never, never>>;
5522
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EBOOK_BETA_RESTRICTED" | "EBOOK_FILE_TOO_LARGE" | "EBOOK_LIMIT_EXCEEDED">>, Record<never, never>>;
5101
5523
  finalizeUpload: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5102
5524
  ebookId: import("zod").ZodUUID;
5103
5525
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
@@ -5159,6 +5581,122 @@ export declare const contract: {
5159
5581
  id: import("zod").ZodUUID;
5160
5582
  }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EBOOK_BETA_RESTRICTED" | "EBOOK_NOT_FOUND">>, Record<never, never>>;
5161
5583
  };
5584
+ emailPreferences: {
5585
+ get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5586
+ locale: import("zod").ZodEnum<{
5587
+ en: "en";
5588
+ es: "es";
5589
+ ja: "ja";
5590
+ ko: "ko";
5591
+ ru: "ru";
5592
+ tr: "tr";
5593
+ vi: "vi";
5594
+ zh: "zh";
5595
+ "zh-TW": "zh-TW";
5596
+ }>;
5597
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5598
+ categories: import("zod").ZodArray<import("zod").ZodObject<{
5599
+ key: import("zod").ZodString;
5600
+ name: import("zod").ZodString;
5601
+ description: import("zod").ZodNullable<import("zod").ZodString>;
5602
+ commercial: import("zod").ZodBoolean;
5603
+ required: import("zod").ZodBoolean;
5604
+ subscribed: import("zod").ZodBoolean;
5605
+ }, import("zod/v4/core").$strict>>;
5606
+ unsubscribedAll: import("zod").ZodBoolean;
5607
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
5608
+ update: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5609
+ categories: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodBoolean>>;
5610
+ unsubscribedAll: import("zod").ZodOptional<import("zod").ZodBoolean>;
5611
+ locale: import("zod").ZodEnum<{
5612
+ en: "en";
5613
+ es: "es";
5614
+ ja: "ja";
5615
+ ko: "ko";
5616
+ ru: "ru";
5617
+ tr: "tr";
5618
+ vi: "vi";
5619
+ zh: "zh";
5620
+ "zh-TW": "zh-TW";
5621
+ }>;
5622
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5623
+ categories: import("zod").ZodArray<import("zod").ZodObject<{
5624
+ key: import("zod").ZodString;
5625
+ name: import("zod").ZodString;
5626
+ description: import("zod").ZodNullable<import("zod").ZodString>;
5627
+ commercial: import("zod").ZodBoolean;
5628
+ required: import("zod").ZodBoolean;
5629
+ subscribed: import("zod").ZodBoolean;
5630
+ }, import("zod/v4/core").$strict>>;
5631
+ unsubscribedAll: import("zod").ZodBoolean;
5632
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
5633
+ getByToken: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5634
+ token: import("zod").ZodString;
5635
+ locale: import("zod").ZodEnum<{
5636
+ en: "en";
5637
+ es: "es";
5638
+ ja: "ja";
5639
+ ko: "ko";
5640
+ ru: "ru";
5641
+ tr: "tr";
5642
+ vi: "vi";
5643
+ zh: "zh";
5644
+ "zh-TW": "zh-TW";
5645
+ }>;
5646
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5647
+ categories: import("zod").ZodArray<import("zod").ZodObject<{
5648
+ key: import("zod").ZodString;
5649
+ name: import("zod").ZodString;
5650
+ description: import("zod").ZodNullable<import("zod").ZodString>;
5651
+ commercial: import("zod").ZodBoolean;
5652
+ required: import("zod").ZodBoolean;
5653
+ subscribed: import("zod").ZodBoolean;
5654
+ }, import("zod/v4/core").$strict>>;
5655
+ unsubscribedAll: import("zod").ZodBoolean;
5656
+ maskedEmail: import("zod").ZodString;
5657
+ highlightCategory: import("zod").ZodNullable<import("zod").ZodString>;
5658
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EMAIL_LINK_INVALID">>, Record<never, never>>;
5659
+ updateByToken: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5660
+ categories: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodBoolean>>;
5661
+ unsubscribedAll: import("zod").ZodOptional<import("zod").ZodBoolean>;
5662
+ token: import("zod").ZodString;
5663
+ locale: import("zod").ZodEnum<{
5664
+ en: "en";
5665
+ es: "es";
5666
+ ja: "ja";
5667
+ ko: "ko";
5668
+ ru: "ru";
5669
+ tr: "tr";
5670
+ vi: "vi";
5671
+ zh: "zh";
5672
+ "zh-TW": "zh-TW";
5673
+ }>;
5674
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5675
+ categories: import("zod").ZodArray<import("zod").ZodObject<{
5676
+ key: import("zod").ZodString;
5677
+ name: import("zod").ZodString;
5678
+ description: import("zod").ZodNullable<import("zod").ZodString>;
5679
+ commercial: import("zod").ZodBoolean;
5680
+ required: import("zod").ZodBoolean;
5681
+ subscribed: import("zod").ZodBoolean;
5682
+ }, import("zod/v4/core").$strict>>;
5683
+ unsubscribedAll: import("zod").ZodBoolean;
5684
+ maskedEmail: import("zod").ZodString;
5685
+ highlightCategory: import("zod").ZodNullable<import("zod").ZodString>;
5686
+ }, import("zod/v4/core").$strict>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "EMAIL_LINK_INVALID">>, Record<never, never>>;
5687
+ };
5688
+ featureAccess: {
5689
+ status: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5690
+ featureKey: import("zod").ZodEnum<{
5691
+ ebook: "ebook";
5692
+ }>;
5693
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5694
+ featureKey: import("zod").ZodEnum<{
5695
+ ebook: "ebook";
5696
+ }>;
5697
+ allowed: import("zod").ZodBoolean;
5698
+ }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
5699
+ };
5162
5700
  hostedAi: {
5163
5701
  status: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
5164
5702
  credits: import("zod").ZodArray<import("zod").ZodObject<{
@@ -5178,6 +5716,36 @@ export declare const contract: {
5178
5716
  videoSubtitles: "videoSubtitles";
5179
5717
  }>>;
5180
5718
  }, import("zod/v4/core").$strict>>;
5719
+ pools: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
5720
+ periodKind: import("zod").ZodEnum<{
5721
+ daily: "daily";
5722
+ weekly: "weekly";
5723
+ }>;
5724
+ usedPercent: import("zod").ZodNumber;
5725
+ resetAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
5726
+ features: import("zod").ZodArray<import("zod").ZodEnum<{
5727
+ customAction: "customAction";
5728
+ inputTranslation: "inputTranslation";
5729
+ languageDetection: "languageDetection";
5730
+ noteSuggestion: "noteSuggestion";
5731
+ pageTranslation: "pageTranslation";
5732
+ selectionTranslation: "selectionTranslation";
5733
+ videoSubtitles: "videoSubtitles";
5734
+ }>>;
5735
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
5736
+ periodKind: import("zod").ZodLiteral<"once">;
5737
+ usedPercent: import("zod").ZodNumber;
5738
+ expiresAt: import("zod").ZodISODateTime;
5739
+ features: import("zod").ZodArray<import("zod").ZodEnum<{
5740
+ customAction: "customAction";
5741
+ inputTranslation: "inputTranslation";
5742
+ languageDetection: "languageDetection";
5743
+ noteSuggestion: "noteSuggestion";
5744
+ pageTranslation: "pageTranslation";
5745
+ selectionTranslation: "selectionTranslation";
5746
+ videoSubtitles: "videoSubtitles";
5747
+ }>>;
5748
+ }, import("zod/v4/core").$strict>], "periodKind">>;
5181
5749
  features: import("zod").ZodObject<{
5182
5750
  pageTranslation: import("zod").ZodObject<{
5183
5751
  normal: import("zod").ZodObject<{
@@ -5185,10 +5753,15 @@ export declare const contract: {
5185
5753
  available: import("zod").ZodBoolean;
5186
5754
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5187
5755
  authentication_required: "authentication_required";
5756
+ pro_required: "pro_required";
5188
5757
  quota_exhausted: "quota_exhausted";
5189
5758
  service_unavailable: "service_unavailable";
5190
5759
  ultra_required: "ultra_required";
5191
5760
  }>>;
5761
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5762
+ pro: "pro";
5763
+ ultra: "ultra";
5764
+ }>>;
5192
5765
  requiresUltra: import("zod").ZodBoolean;
5193
5766
  modelRevision: import("zod").ZodString;
5194
5767
  }, import("zod/v4/core").$strict>;
@@ -5197,10 +5770,15 @@ export declare const contract: {
5197
5770
  available: import("zod").ZodBoolean;
5198
5771
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5199
5772
  authentication_required: "authentication_required";
5773
+ pro_required: "pro_required";
5200
5774
  quota_exhausted: "quota_exhausted";
5201
5775
  service_unavailable: "service_unavailable";
5202
5776
  ultra_required: "ultra_required";
5203
5777
  }>>;
5778
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5779
+ pro: "pro";
5780
+ ultra: "ultra";
5781
+ }>>;
5204
5782
  requiresUltra: import("zod").ZodBoolean;
5205
5783
  modelRevision: import("zod").ZodString;
5206
5784
  }, import("zod/v4/core").$strict>;
@@ -5211,10 +5789,15 @@ export declare const contract: {
5211
5789
  available: import("zod").ZodBoolean;
5212
5790
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5213
5791
  authentication_required: "authentication_required";
5792
+ pro_required: "pro_required";
5214
5793
  quota_exhausted: "quota_exhausted";
5215
5794
  service_unavailable: "service_unavailable";
5216
5795
  ultra_required: "ultra_required";
5217
5796
  }>>;
5797
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5798
+ pro: "pro";
5799
+ ultra: "ultra";
5800
+ }>>;
5218
5801
  requiresUltra: import("zod").ZodBoolean;
5219
5802
  modelRevision: import("zod").ZodString;
5220
5803
  }, import("zod/v4/core").$strict>;
@@ -5223,10 +5806,15 @@ export declare const contract: {
5223
5806
  available: import("zod").ZodBoolean;
5224
5807
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5225
5808
  authentication_required: "authentication_required";
5809
+ pro_required: "pro_required";
5226
5810
  quota_exhausted: "quota_exhausted";
5227
5811
  service_unavailable: "service_unavailable";
5228
5812
  ultra_required: "ultra_required";
5229
5813
  }>>;
5814
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5815
+ pro: "pro";
5816
+ ultra: "ultra";
5817
+ }>>;
5230
5818
  requiresUltra: import("zod").ZodBoolean;
5231
5819
  modelRevision: import("zod").ZodString;
5232
5820
  }, import("zod/v4/core").$strict>;
@@ -5237,10 +5825,15 @@ export declare const contract: {
5237
5825
  available: import("zod").ZodBoolean;
5238
5826
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5239
5827
  authentication_required: "authentication_required";
5828
+ pro_required: "pro_required";
5240
5829
  quota_exhausted: "quota_exhausted";
5241
5830
  service_unavailable: "service_unavailable";
5242
5831
  ultra_required: "ultra_required";
5243
5832
  }>>;
5833
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5834
+ pro: "pro";
5835
+ ultra: "ultra";
5836
+ }>>;
5244
5837
  requiresUltra: import("zod").ZodBoolean;
5245
5838
  modelRevision: import("zod").ZodString;
5246
5839
  }, import("zod/v4/core").$strict>;
@@ -5249,10 +5842,15 @@ export declare const contract: {
5249
5842
  available: import("zod").ZodBoolean;
5250
5843
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5251
5844
  authentication_required: "authentication_required";
5845
+ pro_required: "pro_required";
5252
5846
  quota_exhausted: "quota_exhausted";
5253
5847
  service_unavailable: "service_unavailable";
5254
5848
  ultra_required: "ultra_required";
5255
5849
  }>>;
5850
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5851
+ pro: "pro";
5852
+ ultra: "ultra";
5853
+ }>>;
5256
5854
  requiresUltra: import("zod").ZodBoolean;
5257
5855
  modelRevision: import("zod").ZodString;
5258
5856
  }, import("zod/v4/core").$strict>;
@@ -5263,10 +5861,15 @@ export declare const contract: {
5263
5861
  available: import("zod").ZodBoolean;
5264
5862
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5265
5863
  authentication_required: "authentication_required";
5864
+ pro_required: "pro_required";
5266
5865
  quota_exhausted: "quota_exhausted";
5267
5866
  service_unavailable: "service_unavailable";
5268
5867
  ultra_required: "ultra_required";
5269
5868
  }>>;
5869
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5870
+ pro: "pro";
5871
+ ultra: "ultra";
5872
+ }>>;
5270
5873
  requiresUltra: import("zod").ZodBoolean;
5271
5874
  modelRevision: import("zod").ZodString;
5272
5875
  }, import("zod/v4/core").$strict>;
@@ -5275,10 +5878,15 @@ export declare const contract: {
5275
5878
  available: import("zod").ZodBoolean;
5276
5879
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5277
5880
  authentication_required: "authentication_required";
5881
+ pro_required: "pro_required";
5278
5882
  quota_exhausted: "quota_exhausted";
5279
5883
  service_unavailable: "service_unavailable";
5280
5884
  ultra_required: "ultra_required";
5281
5885
  }>>;
5886
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5887
+ pro: "pro";
5888
+ ultra: "ultra";
5889
+ }>>;
5282
5890
  requiresUltra: import("zod").ZodBoolean;
5283
5891
  modelRevision: import("zod").ZodString;
5284
5892
  }, import("zod/v4/core").$strict>;
@@ -5289,10 +5897,15 @@ export declare const contract: {
5289
5897
  available: import("zod").ZodBoolean;
5290
5898
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5291
5899
  authentication_required: "authentication_required";
5900
+ pro_required: "pro_required";
5292
5901
  quota_exhausted: "quota_exhausted";
5293
5902
  service_unavailable: "service_unavailable";
5294
5903
  ultra_required: "ultra_required";
5295
5904
  }>>;
5905
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5906
+ pro: "pro";
5907
+ ultra: "ultra";
5908
+ }>>;
5296
5909
  requiresUltra: import("zod").ZodBoolean;
5297
5910
  modelRevision: import("zod").ZodString;
5298
5911
  }, import("zod/v4/core").$strict>;
@@ -5301,10 +5914,15 @@ export declare const contract: {
5301
5914
  available: import("zod").ZodBoolean;
5302
5915
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5303
5916
  authentication_required: "authentication_required";
5917
+ pro_required: "pro_required";
5304
5918
  quota_exhausted: "quota_exhausted";
5305
5919
  service_unavailable: "service_unavailable";
5306
5920
  ultra_required: "ultra_required";
5307
5921
  }>>;
5922
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5923
+ pro: "pro";
5924
+ ultra: "ultra";
5925
+ }>>;
5308
5926
  requiresUltra: import("zod").ZodBoolean;
5309
5927
  modelRevision: import("zod").ZodString;
5310
5928
  }, import("zod/v4/core").$strict>;
@@ -5315,10 +5933,15 @@ export declare const contract: {
5315
5933
  available: import("zod").ZodBoolean;
5316
5934
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5317
5935
  authentication_required: "authentication_required";
5936
+ pro_required: "pro_required";
5318
5937
  quota_exhausted: "quota_exhausted";
5319
5938
  service_unavailable: "service_unavailable";
5320
5939
  ultra_required: "ultra_required";
5321
5940
  }>>;
5941
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5942
+ pro: "pro";
5943
+ ultra: "ultra";
5944
+ }>>;
5322
5945
  requiresUltra: import("zod").ZodBoolean;
5323
5946
  modelRevision: import("zod").ZodString;
5324
5947
  }, import("zod/v4/core").$strict>;
@@ -5327,10 +5950,15 @@ export declare const contract: {
5327
5950
  available: import("zod").ZodBoolean;
5328
5951
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5329
5952
  authentication_required: "authentication_required";
5953
+ pro_required: "pro_required";
5330
5954
  quota_exhausted: "quota_exhausted";
5331
5955
  service_unavailable: "service_unavailable";
5332
5956
  ultra_required: "ultra_required";
5333
5957
  }>>;
5958
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5959
+ pro: "pro";
5960
+ ultra: "ultra";
5961
+ }>>;
5334
5962
  requiresUltra: import("zod").ZodBoolean;
5335
5963
  modelRevision: import("zod").ZodString;
5336
5964
  }, import("zod/v4/core").$strict>;
@@ -5341,10 +5969,15 @@ export declare const contract: {
5341
5969
  available: import("zod").ZodBoolean;
5342
5970
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5343
5971
  authentication_required: "authentication_required";
5972
+ pro_required: "pro_required";
5344
5973
  quota_exhausted: "quota_exhausted";
5345
5974
  service_unavailable: "service_unavailable";
5346
5975
  ultra_required: "ultra_required";
5347
5976
  }>>;
5977
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5978
+ pro: "pro";
5979
+ ultra: "ultra";
5980
+ }>>;
5348
5981
  requiresUltra: import("zod").ZodBoolean;
5349
5982
  modelRevision: import("zod").ZodString;
5350
5983
  }, import("zod/v4/core").$strict>;
@@ -5353,10 +5986,15 @@ export declare const contract: {
5353
5986
  available: import("zod").ZodBoolean;
5354
5987
  unavailableReason: import("zod").ZodNullable<import("zod").ZodEnum<{
5355
5988
  authentication_required: "authentication_required";
5989
+ pro_required: "pro_required";
5356
5990
  quota_exhausted: "quota_exhausted";
5357
5991
  service_unavailable: "service_unavailable";
5358
5992
  ultra_required: "ultra_required";
5359
5993
  }>>;
5994
+ upgradeTo: import("zod").ZodNullable<import("zod").ZodEnum<{
5995
+ pro: "pro";
5996
+ ultra: "ultra";
5997
+ }>>;
5360
5998
  requiresUltra: import("zod").ZodBoolean;
5361
5999
  modelRevision: import("zod").ZodString;
5362
6000
  }, import("zod/v4/core").$strict>;
@@ -5580,6 +6218,7 @@ export declare const contract: {
5580
6218
  "FSRS-6": "FSRS-6";
5581
6219
  "FSRS-7": "FSRS-7";
5582
6220
  }>;
6221
+ srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
5583
6222
  createdAt: import("zod").ZodCoercedDate<unknown>;
5584
6223
  updatedAt: import("zod").ZodCoercedDate<unknown>;
5585
6224
  notebaseColumns: import("zod").ZodArray<import("zod").ZodObject<{
@@ -5748,6 +6387,7 @@ export declare const contract: {
5748
6387
  "FSRS-6": "FSRS-6";
5749
6388
  "FSRS-7": "FSRS-7";
5750
6389
  }>;
6390
+ srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
5751
6391
  createdAt: import("zod").ZodDate;
5752
6392
  updatedAt: import("zod").ZodDate;
5753
6393
  }, import("zod/v4/core").$strip>;
@@ -5781,6 +6421,7 @@ export declare const contract: {
5781
6421
  "FSRS-6": "FSRS-6";
5782
6422
  "FSRS-7": "FSRS-7";
5783
6423
  }>;
6424
+ srsSleepingAt: import("zod").ZodNullable<import("zod").ZodDate>;
5784
6425
  createdAt: import("zod").ZodDate;
5785
6426
  updatedAt: import("zod").ZodDate;
5786
6427
  }, import("zod/v4/core").$strip>;
@@ -5789,6 +6430,15 @@ export declare const contract: {
5789
6430
  summary: string;
5790
6431
  description: string;
5791
6432
  } & Record<never, never>>;
6433
+ setSleep: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
6434
+ id: import("zod").ZodUUID;
6435
+ enabled: import("zod").ZodBoolean;
6436
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
6437
+ txid: import("zod").ZodNullable<import("zod").ZodNumber>;
6438
+ }, import("zod/v4/core").$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, Pick<import("@orpc/contract").ErrorMap, "NOTEBASE_NOT_FOUND">>, {
6439
+ summary: string;
6440
+ description: string;
6441
+ } & Record<never, never>>;
5792
6442
  delete: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
5793
6443
  id: import("zod").ZodUUID;
5794
6444
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -7209,12 +7859,15 @@ export declare const contract: {
7209
7859
  zyb: "zyb";
7210
7860
  }>>;
7211
7861
  voice: import("zod").ZodOptional<import("zod").ZodString>;
7212
- }, import("zod/v4/core").$strict>, import("zod").ZodFile, Record<never, never>, Record<never, never>>;
7862
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7863
+ url: import("zod").ZodURL;
7864
+ expiresAt: import("zod").ZodCoercedDate<unknown>;
7865
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
7213
7866
  };
7214
7867
  srs: {
7215
7868
  scheduleStatusStats: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
7216
7869
  notebaseIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUUID>>;
7217
- timezone: import("zod").ZodString;
7870
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7218
7871
  }, import("zod/v4/core").$strict>, import("zod").ZodRecord<import("zod").ZodUUID, import("zod").ZodRecord<import("zod").ZodEnum<{
7219
7872
  learning: "learning";
7220
7873
  new: "new";
@@ -7224,7 +7877,7 @@ export declare const contract: {
7224
7877
  description: string;
7225
7878
  } & Record<never, never>>;
7226
7879
  recentNotebaseScheduleStatusStats: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
7227
- timezone: import("zod").ZodString;
7880
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7228
7881
  }, import("zod/v4/core").$strict>, import("zod").ZodNullable<import("zod").ZodObject<{
7229
7882
  notebase: import("zod").ZodObject<{
7230
7883
  id: import("zod").ZodString;
@@ -7303,7 +7956,7 @@ export declare const contract: {
7303
7956
  hard: "hard";
7304
7957
  }>;
7305
7958
  durationMs: import("zod").ZodNumber;
7306
- timezone: import("zod").ZodString;
7959
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7307
7960
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7308
7961
  card: import("zod").ZodObject<{
7309
7962
  notebaseId: import("zod").ZodUUID;
@@ -7461,7 +8114,7 @@ export declare const contract: {
7461
8114
  notebaseIds: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodUUID>, import("zod").ZodTransform<string[], string[]>>>;
7462
8115
  from: import("zod").ZodOptional<import("zod").ZodISODate>;
7463
8116
  to: import("zod").ZodISODate;
7464
- timezone: import("zod").ZodString;
8117
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7465
8118
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7466
8119
  srs: import("zod").ZodObject<{
7467
8120
  learnedCards: import("zod").ZodNumber;
@@ -7482,7 +8135,7 @@ export declare const contract: {
7482
8135
  notebaseIds: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodUUID>, import("zod").ZodTransform<string[], string[]>>>;
7483
8136
  from: import("zod").ZodOptional<import("zod").ZodISODate>;
7484
8137
  to: import("zod").ZodISODate;
7485
- timezone: import("zod").ZodString;
8138
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7486
8139
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7487
8140
  baseTotal: import("zod").ZodNumber;
7488
8141
  daily: import("zod").ZodArray<import("zod").ZodObject<{
@@ -7494,7 +8147,7 @@ export declare const contract: {
7494
8147
  notebaseIds: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodArray<import("zod").ZodUUID>, import("zod").ZodTransform<string[], string[]>>>;
7495
8148
  from: import("zod").ZodOptional<import("zod").ZodISODate>;
7496
8149
  to: import("zod").ZodISODate;
7497
- timezone: import("zod").ZodString;
8150
+ timezone: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
7498
8151
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7499
8152
  baseTotal: import("zod").ZodNumber;
7500
8153
  daily: import("zod").ZodArray<import("zod").ZodObject<{
@@ -7515,6 +8168,57 @@ export declare const contract: {
7515
8168
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
7516
8169
  timezone: import("zod").ZodString;
7517
8170
  }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
8171
+ ensureLocale: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8172
+ locale: import("zod").ZodEnum<{
8173
+ en: "en";
8174
+ es: "es";
8175
+ ja: "ja";
8176
+ ko: "ko";
8177
+ ru: "ru";
8178
+ tr: "tr";
8179
+ vi: "vi";
8180
+ zh: "zh";
8181
+ "zh-TW": "zh-TW";
8182
+ }>;
8183
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8184
+ locale: import("zod").ZodEnum<{
8185
+ en: "en";
8186
+ es: "es";
8187
+ ja: "ja";
8188
+ ko: "ko";
8189
+ ru: "ru";
8190
+ tr: "tr";
8191
+ vi: "vi";
8192
+ zh: "zh";
8193
+ "zh-TW": "zh-TW";
8194
+ }>;
8195
+ updated: import("zod").ZodBoolean;
8196
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
8197
+ updateLocale: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
8198
+ locale: import("zod").ZodEnum<{
8199
+ en: "en";
8200
+ es: "es";
8201
+ ja: "ja";
8202
+ ko: "ko";
8203
+ ru: "ru";
8204
+ tr: "tr";
8205
+ vi: "vi";
8206
+ zh: "zh";
8207
+ "zh-TW": "zh-TW";
8208
+ }>;
8209
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
8210
+ locale: import("zod").ZodEnum<{
8211
+ en: "en";
8212
+ es: "es";
8213
+ ja: "ja";
8214
+ ko: "ko";
8215
+ ru: "ru";
8216
+ tr: "tr";
8217
+ vi: "vi";
8218
+ zh: "zh";
8219
+ "zh-TW": "zh-TW";
8220
+ }>;
8221
+ }, import("zod/v4/core").$strict>, Record<never, never>, Record<never, never>>;
7518
8222
  };
7519
8223
  videoTranscript: {
7520
8224
  create: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{