@riverbankcms/sdk 0.64.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +21 -11
  2. package/dist/_dts/api/src/aiPlayground.d.ts +75 -20
  3. package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
  4. package/dist/_dts/api/src/billing.d.ts +7 -40
  5. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -1
  6. package/dist/_dts/api/src/bookingOperations.d.ts +33 -2
  7. package/dist/_dts/api/src/endpoints.d.ts +32 -0
  8. package/dist/_dts/api/src/public/types.d.ts +1 -1
  9. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +0 -40
  10. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  11. package/dist/_dts/api/src/siteMembers.d.ts +1 -1
  12. package/dist/_dts/api/src/siteOperations.d.ts +1 -1
  13. package/dist/_dts/billing/src/components/index.d.ts +426 -0
  14. package/dist/_dts/billing/src/plans/types.d.ts +1 -1
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -0
  16. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  17. package/dist/_dts/blocks/src/client.d.ts +6 -0
  18. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  19. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -0
  20. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +3 -1
  21. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +140 -0
  22. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -0
  23. package/dist/_dts/blocks/src/system/runtime/hooks/useVisibleTabPolling.d.ts +10 -0
  24. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.default-ui.d.ts +8 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +484 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -2
  27. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +1 -0
  28. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  29. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +81 -0
  30. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +7 -3
  31. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  32. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -2
  33. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -0
  34. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +33 -0
  35. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +32 -0
  36. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +5 -1
  37. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +2 -1
  38. package/dist/_dts/sdk/src/cli/env.d.ts +2 -1
  39. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -1
  40. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +13 -0
  41. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +144 -0
  42. package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +21 -0
  43. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +27 -0
  44. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +56 -0
  45. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +29 -49
  46. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +56 -0
  47. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +53 -0
  48. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +6 -0
  49. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +53 -0
  50. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +79 -0
  51. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +19 -20
  52. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +8 -0
  53. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +97 -0
  54. package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +15 -0
  55. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +10 -28
  56. package/dist/_dts/sdk/src/cli/sync/index.d.ts +2 -1
  57. package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +4 -0
  58. package/dist/_dts/sdk/src/config/dashboard-validation.d.ts +0 -48
  59. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  60. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  61. package/dist/_dts/sdk/src/theme-bridge/ThemeBridgeProvider.d.ts +4 -4
  62. package/dist/_dts/sdk/src/theme-bridge/generateCssVars.d.ts +4 -12
  63. package/dist/_dts/sdk/src/theme-bridge/index.d.ts +1 -1
  64. package/dist/_dts/sdk/src/theme-bridge/types.d.ts +17 -9
  65. package/dist/_dts/sdk/src/version.d.ts +1 -1
  66. package/dist/_dts/site-commands/src/adapter.d.ts +2 -2
  67. package/dist/_dts/site-commands/src/commands.d.ts +637 -13
  68. package/dist/_dts/site-commands/src/domain.d.ts +3 -3
  69. package/dist/_dts/site-commands/src/exposure.d.ts +41 -0
  70. package/dist/_dts/site-commands/src/index.d.ts +2 -0
  71. package/dist/_dts/site-commands/src/metadata.d.ts +159 -3
  72. package/dist/_dts/site-commands/src/planner.d.ts +13 -6
  73. package/dist/_dts/site-commands/src/refContributions.d.ts +1 -0
  74. package/dist/_dts/site-commands/src/refs.d.ts +19 -1
  75. package/dist/_dts/{sdk/src/cli/merge-remote → site-commands/src}/stableJson.d.ts +2 -0
  76. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  77. package/dist/_dts/theme-core/src/index.d.ts +1 -1
  78. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +1 -0
  79. package/dist/_dts/theme-core/src/palette/utils/onColor.d.ts +2 -0
  80. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +30 -23
  81. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +83 -0
  82. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  83. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +89 -12
  84. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  85. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  86. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +3 -2
  87. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -6
  88. package/dist/_dts/ui/src/callout.d.ts +1 -1
  89. package/dist/cli/index.mjs +4736 -2026
  90. package/dist/client/bookings.mjs +5107 -3348
  91. package/dist/client/client.mjs +4579 -3871
  92. package/dist/client/hooks.mjs +325 -123
  93. package/dist/client/rendering/client.mjs +4474 -3869
  94. package/dist/client/rendering/islands.mjs +4234 -3639
  95. package/dist/client/rendering.mjs +4508 -3798
  96. package/dist/preview-next/before-render.mjs +75 -13
  97. package/dist/preview-next/client/runtime.mjs +3700 -2644
  98. package/dist/preview-next/middleware.mjs +75 -13
  99. package/dist/server/components.mjs +698 -383
  100. package/dist/server/config-validation.mjs +327 -125
  101. package/dist/server/config.mjs +327 -125
  102. package/dist/server/data.mjs +325 -123
  103. package/dist/server/index.mjs +92 -16
  104. package/dist/server/next.mjs +692 -377
  105. package/dist/server/page-converter.mjs +159 -41
  106. package/dist/server/prebuild.mjs +1 -1
  107. package/dist/server/rendering/server.mjs +700 -383
  108. package/dist/server/rendering.mjs +700 -383
  109. package/dist/server/routing.mjs +406 -131
  110. package/dist/server/server.mjs +326 -124
  111. package/dist/server/theme-bridge.mjs +1226 -4697
  112. package/dist/styles/index.css +38 -38
  113. package/package.json +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/components/booking/DateTimeSelectionStep.d.ts +0 -18
  115. package/dist/_dts/blocks/src/system/runtime/components/booking/PaymentOptionSelectionStep.d.ts +0 -9
  116. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.d.ts +0 -44
  117. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.state.d.ts +0 -23
  118. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceSelectionStep.d.ts +0 -18
  119. package/dist/_dts/blocks/src/system/runtime/components/booking/slotDisplay.d.ts +0 -2
  120. package/dist/_dts/blocks/src/system/runtime/components/multi-step/MultiStepForm.d.ts +0 -21
  121. package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.d.ts +0 -15
  122. package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.state.d.ts +0 -51
  123. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSteps.d.ts +0 -22
  124. package/dist/_dts/path-utils/src/index.d.ts +0 -8
  125. package/dist/_dts/path-utils/src/redirectPaths.d.ts +0 -26
  126. package/dist/_dts/path-utils/src/safeAppPath.d.ts +0 -26
package/README.md CHANGED
@@ -179,6 +179,10 @@ const circuitState = client.getCircuitState();
179
179
 
180
180
  For detailed testing and verification steps, see [`docs/resilience-verification.md`](./docs/resilience-verification.md).
181
181
 
182
+ ### Headless Appointment Booking
183
+
184
+ SDK sites that need bespoke appointment booking UI can use the headless booking runtime from `@riverbankcms/sdk/bookings`. See [`docs/headless-booking.md`](./docs/headless-booking.md) for the real `blockOverrides` pattern with an `'appointment-booking'` override, `HeadlessBookingProvider`, `getAppointmentBookingOverrideInput`, and `useHeadlessBookingFlow`.
185
+
182
186
  ### Server-Side API
183
187
 
184
188
  ```tsx
@@ -1484,9 +1488,10 @@ Style Builder blocks to match your brand using the Theme Bridge. This provides C
1484
1488
 
1485
1489
  ### Quick Start
1486
1490
 
1487
- Wrap your app with `ThemeBridgeProvider` and define your color tokens:
1491
+ Import the SDK base stylesheet, then wrap your app with `ThemeBridgeProvider` and define your color tokens:
1488
1492
 
1489
1493
  ```tsx
1494
+ import '@riverbankcms/sdk/styles.css';
1490
1495
  import { ThemeBridgeProvider } from '@riverbankcms/sdk/theme-bridge';
1491
1496
 
1492
1497
  export default function RootLayout({ children }) {
@@ -1509,7 +1514,7 @@ export default function RootLayout({ children }) {
1509
1514
 
1510
1515
  ### Token System
1511
1516
 
1512
- Define color tokens as key-value pairs. Keys become CSS variables (`--color-{key}`):
1517
+ Define color tokens as key-value pairs. Keys become runtime CSS variables such as `--tb-primary`:
1513
1518
 
1514
1519
  ```tsx
1515
1520
  <ThemeBridgeProvider
@@ -1523,18 +1528,20 @@ Define color tokens as key-value pairs. Keys become CSS variables (`--color-{key
1523
1528
  background: '#ffffff',
1524
1529
  surface: '#f8fafc',
1525
1530
 
1526
- // Text
1527
- text: '#1e293b',
1528
- mutedText: '#64748b',
1531
+ // Text. foreground/mutedForeground are preferred;
1532
+ // text/mutedText remain accepted aliases.
1533
+ foreground: '#1e293b',
1534
+ mutedForeground: '#64748b',
1529
1535
 
1530
1536
  // UI
1531
1537
  border: '#e2e8f0',
1532
- white: '#ffffff',
1538
+ primaryForeground: '#ffffff',
1533
1539
 
1534
1540
  // Status
1535
1541
  success: '#22c55e',
1536
1542
  warning: '#f59e0b',
1537
- danger: '#ef4444',
1543
+ destructive: '#ef4444',
1544
+ info: '#0ea5e9',
1538
1545
  },
1539
1546
  }}
1540
1547
  >
@@ -1545,6 +1552,8 @@ Token values can be:
1545
1552
  - **CSS variable refs**: `'var(--brand-purple)'` (passed through)
1546
1553
  - **RGB values**: `'109 40 217'` (used directly)
1547
1554
 
1555
+ Canonical tokens win when aliases are also present. Accepted aliases are `text -> foreground`, `mutedText -> mutedForeground`, `white -> primaryForeground`, and `danger -> destructive`.
1556
+
1548
1557
  ### Design Presets
1549
1558
 
1550
1559
  Control typography, spacing, corners, and shadows:
@@ -1576,7 +1585,7 @@ Control typography, spacing, corners, and shadows:
1576
1585
 
1577
1586
  ### Component CSS (Opt-in)
1578
1587
 
1579
- By default, only CSS variables are generated. Enable component CSS for buttons, cards, and inputs:
1588
+ By default, the provider emits CSS variables plus structural runtime CSS used by system blocks: status classes, step/progress classes, and block-specific variables such as appointment booking `--ab-*` vars. Generated visual skins for buttons, cards, and inputs remain opt-in:
1580
1589
 
1581
1590
  ```tsx
1582
1591
  <ThemeBridgeProvider
@@ -1584,7 +1593,7 @@ By default, only CSS variables are generated. Enable component CSS for buttons,
1584
1593
  tokens: {
1585
1594
  primary: '#6d28d9',
1586
1595
  secondary: '#4c1d95',
1587
- white: '#ffffff',
1596
+ primaryForeground: '#ffffff',
1588
1597
  surface: '#f8fafc',
1589
1598
  text: '#1e293b',
1590
1599
  border: '#e2e8f0',
@@ -1643,9 +1652,8 @@ Reference existing CSS variables from your design system:
1643
1652
  primary: 'var(--brand-purple)',
1644
1653
  secondary: 'var(--brand-navy)',
1645
1654
  background: 'var(--ds-bg)',
1646
- text: 'var(--ds-text)',
1655
+ foreground: 'var(--ds-text)',
1647
1656
  },
1648
- components: { buttons: true },
1649
1657
  }}
1650
1658
  >
1651
1659
  ```
@@ -1669,6 +1677,8 @@ const { css, cssVars } = generateThemeBridgeCss({
1669
1677
  // cssVars: Object of CSS variable name-value pairs
1670
1678
  ```
1671
1679
 
1680
+ When using `generateThemeBridgeCss` directly, render the affected blocks inside an element with `data-theme-scope="sdk"` so the generated status, progress, component, and block-var selectors apply. `ThemeBridgeProvider` adds that wrapper for you.
1681
+
1672
1682
  ### Available Exports
1673
1683
 
1674
1684
  ```tsx
@@ -229,46 +229,101 @@ export type ApplyAiDesignerThemePatchResponse = {
229
229
  themeId: string;
230
230
  themeUpdatedAt: string;
231
231
  };
232
- export type ApplyAiDesignerPageOpsRequest = {
233
- kind: "reorder_blocks";
232
+ type AiDesignerPageBlocksEnvelope = {
233
+ blockIds: string[];
234
+ };
235
+ type AiDesignerAddedPageBlock = {
236
+ id: string;
237
+ kind: string;
238
+ content?: Record<string, unknown> | null;
239
+ };
240
+ type AiDesignerBasePageOpPreview = {
241
+ id: string;
242
+ summary: string;
243
+ scope: "page";
234
244
  pageId: string;
235
- baseBlockIds: string[];
236
- orderedBlockIds: string[];
237
- } | {
245
+ base: AiDesignerPageBlocksEnvelope;
246
+ before: AiDesignerPageBlocksEnvelope;
247
+ after: AiDesignerPageBlocksEnvelope & {
248
+ addedBlocks?: AiDesignerAddedPageBlock[];
249
+ };
250
+ };
251
+ type AiDesignerReorderBlocksPreview = AiDesignerBasePageOpPreview & {
252
+ kind: "reorder_blocks";
253
+ };
254
+ type AiDesignerMoveBlockPreview = AiDesignerBasePageOpPreview & {
238
255
  kind: "move_block";
239
- pageId: string;
240
- baseBlockIds: string[];
256
+ blockId: string;
257
+ anchor: {
258
+ kind: "after";
259
+ blockId: string | null;
260
+ } | {
261
+ kind: "before";
262
+ blockId: string | null;
263
+ };
264
+ };
265
+ type AiDesignerSwapBlocksPreview = AiDesignerBasePageOpPreview & {
266
+ kind: "swap_blocks";
267
+ blockIdA: string;
268
+ blockIdB: string;
269
+ };
270
+ type AiDesignerAddBlockPreview = AiDesignerBasePageOpPreview & {
271
+ kind: "add_block";
272
+ blockKind: string;
273
+ afterBlockId: string | null;
274
+ after: AiDesignerPageBlocksEnvelope & {
275
+ addedBlocks: AiDesignerAddedPageBlock[];
276
+ };
277
+ };
278
+ type AiDesignerDuplicateBlockPreview = AiDesignerBasePageOpPreview & {
279
+ kind: "duplicate_block";
241
280
  blockId: string;
242
281
  afterBlockId: string | null;
243
- } | {
244
- kind: "move_block";
282
+ after: AiDesignerPageBlocksEnvelope & {
283
+ addedBlocks: AiDesignerAddedPageBlock[];
284
+ };
285
+ };
286
+ type AiDesignerPageOpPreview = AiDesignerReorderBlocksPreview | AiDesignerMoveBlockPreview | AiDesignerSwapBlocksPreview | AiDesignerAddBlockPreview | AiDesignerDuplicateBlockPreview;
287
+ export type AiDesignerCommandBackedPageProposal<TPreview extends AiDesignerPageOpPreview = AiDesignerPageOpPreview> = {
288
+ proposalId: string;
289
+ surface: "page";
290
+ baseFingerprint: string;
291
+ commandBatch: {
292
+ recipeVersion: string;
293
+ batchRef: string;
294
+ target: {
295
+ siteRef: string;
296
+ };
297
+ commands: readonly unknown[];
298
+ };
299
+ preview: TPreview;
300
+ dryRunSummary?: string;
301
+ };
302
+ export type ApplyAiDesignerPageOpsRequest = {
303
+ kind: "reorder_blocks";
245
304
  pageId: string;
246
305
  baseBlockIds: string[];
247
- blockId: string;
248
- beforeBlockId: string | null;
306
+ commandBacked: AiDesignerCommandBackedPageProposal<AiDesignerReorderBlocksPreview>;
249
307
  } | {
250
- kind: "swap_blocks";
308
+ kind: "move_block";
251
309
  pageId: string;
252
310
  baseBlockIds: string[];
253
- blockIdA: string;
254
- blockIdB: string;
311
+ commandBacked: AiDesignerCommandBackedPageProposal<AiDesignerMoveBlockPreview>;
255
312
  } | {
256
- kind: "delete_block";
313
+ kind: "swap_blocks";
257
314
  pageId: string;
258
315
  baseBlockIds: string[];
259
- blockId: string;
316
+ commandBacked: AiDesignerCommandBackedPageProposal<AiDesignerSwapBlocksPreview>;
260
317
  } | {
261
318
  kind: "add_block";
262
319
  pageId: string;
263
320
  baseBlockIds: string[];
264
- blockKind: string;
265
- afterBlockId?: string | null;
321
+ commandBacked: AiDesignerCommandBackedPageProposal<AiDesignerAddBlockPreview>;
266
322
  } | {
267
323
  kind: "duplicate_block";
268
324
  pageId: string;
269
325
  baseBlockIds: string[];
270
- blockId: string;
271
- afterBlockId?: string | null;
326
+ commandBacked: AiDesignerCommandBackedPageProposal<AiDesignerDuplicateBlockPreview>;
272
327
  };
273
328
  export type ApplyAiDesignerPageOpsResponse = {
274
329
  ok: true;
@@ -21,4 +21,16 @@ export type APIEndpoint<TBody = unknown, TQuery = unknown, TResponse = unknown>
21
21
  tags?: string[];
22
22
  responseKind?: ApiResponseKind;
23
23
  auth?: ApiAuthRequirement;
24
+ demoMutation?: ApiDemoMutationPolicy;
24
25
  };
26
+ export type ApiDemoMutationClassification = "allowed" | "blocked-hidden" | "blocked-disabled" | "internal-only";
27
+ export type ApiDemoMutationBlockingClassification = Exclude<ApiDemoMutationClassification, "allowed">;
28
+ export type ApiDemoMutationPolicy = Readonly<{
29
+ classification: "allowed";
30
+ publicMessage: "";
31
+ }> | Readonly<{
32
+ classification: ApiDemoMutationBlockingClassification;
33
+ publicMessage: string;
34
+ }>;
35
+ export declare function allowedDemoMutationPolicy(): ApiDemoMutationPolicy;
36
+ export declare function blockedDemoMutationPolicy(classification: ApiDemoMutationBlockingClassification, publicMessage: string): ApiDemoMutationPolicy;
@@ -1,5 +1,6 @@
1
1
  import type { ChangePlanRequest, ChangePlanResponse } from './types';
2
2
  import type { ApiClient } from './request';
3
+ import type { BillingComponentSummaryAddOnComponent, BillingComponentSummaryBasePlanComponent, BillingComponentSummaryComponent, BillingComponentSummarySiteComponent } from '@riverbankcms/billing/components';
3
4
  export type BillingStatusResponse = {
4
5
  hasActiveSubscription: boolean;
5
6
  subscriptionStatus: string | null;
@@ -52,45 +53,12 @@ export type BillingSummaryResponse = {
52
53
  isCustomPrice: boolean;
53
54
  } | null;
54
55
  };
55
- export type BillingSummaryComponentKind = "plan_base" | "custom_site_price" | "extra_site" | "managed_domain_overage";
56
- export type BillingSummaryComponentSource = {
57
- kind: "plan";
58
- planId: string;
59
- } | {
60
- kind: "site";
61
- siteId: string;
62
- } | {
63
- kind: "site_domain";
64
- siteId: string;
65
- siteDomainId: string;
66
- };
67
- type BillingSummaryComponentBase<TKind extends BillingSummaryComponentKind> = {
68
- kind: TKind;
69
- label: string;
70
- amountCents: number;
71
- formatted: string;
72
- interval: "month" | "year";
73
- };
74
- export type BillingSummaryComponent = BillingSummaryBasePlanComponent | BillingSummarySiteComponent | BillingSummaryAddOnComponent;
75
- export type BillingSummaryBasePlanComponent = BillingSummaryComponentBase<"plan_base"> & {
76
- source: Extract<BillingSummaryComponentSource, {
77
- kind: "plan";
78
- }>;
79
- };
80
- export type BillingSummarySiteComponent = BillingSummaryComponentBase<"custom_site_price"> & {
81
- source: Extract<BillingSummaryComponentSource, {
82
- kind: "site";
83
- }>;
84
- };
85
- export type BillingSummaryAddOnComponent = (BillingSummaryComponentBase<"extra_site"> & {
86
- source: Extract<BillingSummaryComponentSource, {
87
- kind: "site";
88
- }>;
89
- }) | (BillingSummaryComponentBase<"managed_domain_overage"> & {
90
- source: Extract<BillingSummaryComponentSource, {
91
- kind: "site_domain";
92
- }>;
93
- });
56
+ export type BillingSummaryComponent = BillingComponentSummaryComponent;
57
+ export type BillingSummaryComponentKind = BillingSummaryComponent["kind"];
58
+ export type BillingSummaryComponentSource = BillingSummaryComponent["source"];
59
+ export type BillingSummaryBasePlanComponent = BillingComponentSummaryBasePlanComponent;
60
+ export type BillingSummarySiteComponent = BillingComponentSummarySiteComponent;
61
+ export type BillingSummaryAddOnComponent = BillingComponentSummaryAddOnComponent;
94
62
  export type SiteBillingCostResponse = {
95
63
  hasCost: boolean;
96
64
  formattedCost: string;
@@ -153,4 +121,3 @@ export declare function changePlan(apiClient: ApiClient, { planId, interval, pro
153
121
  export declare function billingCheckout(apiClient: ApiClient, { planId, interval, options, }: BillingCheckoutRequest & {
154
122
  options?: RequestInit;
155
123
  }): Promise<BillingCheckoutResponse>;
156
- export {};
@@ -5,7 +5,7 @@ import type { BookingRequirementConfigRequest, BookingRequirementConfigResponse,
5
5
  import type { BookingClosureConflictResponse, CreateBookingClosureRequest, CreateBookingClosureResponse, DeleteBookingClosureResponse, GetBookingClosureResponse, ListBookingClosuresResponse, PreviewBookingClosureResponse, BookingClosureRequest } from "./bookingClosures";
6
6
  import type { BookingSettingsResponse, CreateEventSeriesRequest, EventSeriesRecord, UpdateBookingSettingsRequest, UpdateEventSeriesRequest } from "./bookingConfig";
7
7
  import type { AdjustCustomerPassDetailsRequest, AdjustCustomerPassDetailsResponse, AssignCustomerMembershipRequest, AssignCustomerMembershipResponse, AssignCustomerPassRequest, AssignCustomerPassResponse, CancelCustomerMembershipAtPeriodEndRequest, CancelCustomerMembershipAtPeriodEndResponse, ConvertCreditRefundToCashRequest, ConvertCreditRefundToCashResponse, ListCustomerMembershipPaymentRefundsResponse, ListCustomerMembershipPaymentsResponse, ListCustomerPassRefundsResponse, RefundCustomerMembershipPaymentRequest, RefundCustomerMembershipPaymentResponse, RefundCustomerPassRequest, RefundCustomerPassResponse } from "./bookingAdjustments";
8
- import type { AppointmentResourceResponse, AppointmentServiceResponse, BookingAppointmentWithDetails, CreateAppointmentResourceRequest, CreateAppointmentServiceRequest, CreateTeamMemberProfileResponse, DiscardTeamMemberProfileDraftResponse, DeleteServiceResponse, ListAppointmentResourcesResponse, ListAppointmentServicesResponse, ListCourseEnrollmentRefundsResponse, ListEventAttendeeRefundsResponse, ListEventAttendeeTransfersResponse, OpsCancelEventAttendeeRequest, OpsCancelEventAttendeeResponse, OpsEventAttendeeDetailsResponse, OpsListUpcomingEventOccurrencesResponse, OpsOccurrenceAttendeesResponse, OpsRefundEventAttendeeResponse, OpsUpdateEventAttendeeCheckinRequest, OpsUpdateEventAttendeeCheckinResponse, OpsValidateEventTicketRequest, OpsValidateEventTicketResponse, ReferenceOptionsResponse, RemoveAppointmentResourceResponse, RefundCourseEnrollmentRequest, RefundCourseEnrollmentResponse, RefundEventAttendeeRequest, RefundEventAttendeeResponse, TransferEventAttendeeRequest, TransferEventAttendeeResponse, UpdateAppointmentResourceRequest, UpdateAppointmentServiceRequest, PublishTeamMemberProfileRequest, PublishTeamMemberProfileResponse, CancelScheduledTeamMemberProfileResponse, ScheduleTeamMemberProfileRequest, ScheduleTeamMemberProfileResponse, TeamMemberProfileContentResponse, UnpublishTeamMemberProfileResponse, UpdateTeamMemberProfileContentRequest, UpdateTeamMemberProfilePolicyRequest, UpdateTeamMemberProfilePolicyResponse, UpdateTeamMemberProfileRouteMetadataRequest, UpdateTeamMemberProfileRouteMetadataResponse } from "./bookingOperations";
8
+ import type { AppointmentResourceResponse, AppointmentServiceResponse, BookingAppointmentWithDetails, CreateAppointmentResourceRequest, CreateAppointmentResourceWithAccountAccessRequest, CreateAppointmentResourceWithAccountAccessResponse, CreateAppointmentServiceRequest, CreateTeamMemberProfileResponse, DiscardTeamMemberProfileDraftResponse, DeleteServiceResponse, ListAppointmentResourcesResponse, ListAppointmentServicesResponse, ListCourseEnrollmentRefundsResponse, ListEventAttendeeRefundsResponse, ListEventAttendeeTransfersResponse, OpsCancelEventAttendeeRequest, OpsCancelEventAttendeeResponse, OpsEventAttendeeDetailsResponse, OpsListUpcomingEventOccurrencesResponse, OpsOccurrenceAttendeesResponse, OpsRefundEventAttendeeResponse, OpsUpdateEventAttendeeCheckinRequest, OpsUpdateEventAttendeeCheckinResponse, OpsValidateEventTicketRequest, OpsValidateEventTicketResponse, ReferenceOptionsResponse, RemoveAppointmentResourceResponse, RefundCourseEnrollmentRequest, RefundCourseEnrollmentResponse, RefundEventAttendeeRequest, RefundEventAttendeeResponse, TransferEventAttendeeRequest, TransferEventAttendeeResponse, UpdateAppointmentResourceRequest, UpdateAppointmentServiceRequest, PublishTeamMemberProfileRequest, PublishTeamMemberProfileResponse, CancelScheduledTeamMemberProfileResponse, ScheduleTeamMemberProfileRequest, ScheduleTeamMemberProfileResponse, TeamMemberProfileContentResponse, UnpublishTeamMemberProfileResponse, UpdateTeamMemberProfileContentRequest, UpdateTeamMemberProfilePolicyRequest, UpdateTeamMemberProfilePolicyResponse, UpdateTeamMemberProfileRouteMetadataRequest, UpdateTeamMemberProfileRouteMetadataResponse } from "./bookingOperations";
9
9
  import type { AddEventOccurrenceAttendeeRequest, AddEventOccurrenceAttendeeResponse, AdjustCustomerCreditRequest, AdjustCustomerCreditResponse, BookingEventSeriesAttendee, BookingMembershipResponse, BookingPassResponse, CheckEventAdminEligibilityRequest, CheckEventAdminEligibilityResponse, CreateBookingCustomerRequest, CreateBookingCustomerResponse, RectifyBookingCustomerProfileRequest, RectifyBookingCustomerProfileResponse, RectifyBookingParticipantIdentityRequest, RectifyBookingParticipantIdentityResponse, CreateBookingMembershipRequest, CreateBookingPassRequest, CreateDiscountCodeRequest, CreateEventCategoryRequest, CreateOccurrenceRequest, CreateVenueRequest, DeleteDiscountCodeResponse, DeleteVenueResponse, DiscountCodeResponse, EventCategoryResponse, EventOccurrenceListRecord, EventOccurrenceRecord, GeocodeVenueRequest, GeocodeVenueResponse, GetCustomerCreditResponse, GetMoneyReportRequest, GetMoneyReportResponse, ExportBookingQuestionAnswersCsvRequest, ExportBookingLedgerCsvRequest, ListBookingActivityRequest, ListBookingActivityResponse, ListBookingCustomersRequest, ListBookingCustomersResponse, ListBookingMembershipsRequest, ListBookingMembershipsResponse, ListBookingPassesRequest, ListBookingPassesResponse, ListCustomerAttendancesRequest, ListCustomerAttendancesResponse, ListCustomerMembershipsResponse, ListCustomerPassesResponse, CreatePersonRecordEntryRequest, CreatePersonRecordEntryResponse, ListDiscountCodesResponse, ListDiscountRedemptionsRequest, ListDiscountRedemptionsResponse, ListEventCategoriesResponse, ListMoneyPaymentsRequest, ListMoneyPaymentsResponse, ListSiteCustomerMembershipsRequest, ListSiteCustomerMembershipsResponse, ListSiteCustomerPassesRequest, ListSiteCustomerPassesResponse, UpdateBookingMembershipRequest, UpdateBookingPassRequest, UpdateDiscountCodeRequest, UpdateEventCategoryRequest, UpdateOccurrenceRequest, UpdateVenueRequest, VenueRecord } from "./bookingRecords";
10
10
  import type { ApplyAppointmentSetupRequest, ApplyAppointmentSetupResponse, AppointmentSetupResponse } from "./appointmentSetup";
11
11
  import type { AddCourseEnrollmentRequest, AddCourseEnrollmentResponse, CourseRecord, CreateCourseRequest, CreateCourseResponse, DashboardWaitlistListResponse, DeleteCourseProgramResponse, DeleteCourseResponse, DuplicateCourseRequest, DuplicateCourseResponse, ListCourseEnrollmentsResponse, UpdateCourseEnrollmentRequest, UpdateCourseEnrollmentResponse, UpdateCourseRequest, UpdateCourseResponse, WaitlistDashboardActionResponse } from "./courses";
@@ -224,6 +224,9 @@ export type BookingManagementAPIEndpoints = {
224
224
  createAppointmentResource: APIEndpoint<CreateAppointmentResourceRequest, {
225
225
  siteId: string;
226
226
  }, AppointmentResourceResponse>;
227
+ createAppointmentResourceWithAccountAccess: APIEndpoint<CreateAppointmentResourceWithAccountAccessRequest, {
228
+ siteId: string;
229
+ }, CreateAppointmentResourceWithAccountAccessResponse>;
227
230
  getAppointmentResource: APIEndpoint<never, {
228
231
  siteId: string;
229
232
  resourceId: string;
@@ -1,10 +1,11 @@
1
1
  import type { TimeSlot } from "./availability";
2
2
  import type { BookingPaymentOptionsSource, BookingPaymentTermsConfig, PublicBookingPaymentTermsAvailability, BookingPricing, BookingPricingInput } from "./bookingConfig";
3
+ import type { InviteSiteMemberEmailResult, SiteInvitation, StaffOperationalCapability } from "./accessAdmin";
3
4
  import type { CourseEnrollmentRefundFailedCode, EventAttendeeRefundFailedCode } from "./bookingRefundOutcomes";
4
5
  /**
5
6
  * Booking Operations Contracts
6
7
  *
7
- * These types cover event-host ops workflows, appointment resource/service
8
+ * These types cover staff event-ops workflows, appointment resource/service
8
9
  * management, and public booking-session payloads.
9
10
  *
10
11
  * Note: Do NOT use these API types as validation schemas. They document wire
@@ -304,7 +305,37 @@ export type CreateAppointmentResourceRequest = {
304
305
  bio?: string | null;
305
306
  timezone?: string;
306
307
  colorHex?: string | null;
307
- calendarSyncEnabled?: boolean;
308
+ };
309
+ export type TeamMemberAccountAccessInput = {
310
+ kind: "managed_by_site_admins";
311
+ } | {
312
+ kind: "link_current_user";
313
+ } | {
314
+ kind: "invite_by_email";
315
+ email: string;
316
+ staffCapabilities: StaffOperationalCapability[];
317
+ } | {
318
+ kind: "link_existing_member";
319
+ memberId: string;
320
+ };
321
+ export type TeamMemberPractitionerLinkState = {
322
+ kind: "linked_to_current_user";
323
+ } | {
324
+ kind: "linked_to_another_user";
325
+ } | {
326
+ kind: "pending_invite";
327
+ } | {
328
+ kind: "unlinked";
329
+ };
330
+ export type CreateAppointmentResourceWithAccountAccessRequest = CreateAppointmentResourceRequest & {
331
+ accountAccess: TeamMemberAccountAccessInput;
332
+ };
333
+ export type CreateAppointmentResourceWithAccountAccessResponse = {
334
+ resource: DashboardAppointmentResource;
335
+ linkState: TeamMemberPractitionerLinkState;
336
+ invitation?: SiteInvitation;
337
+ email?: InviteSiteMemberEmailResult;
338
+ accountAccessWarning?: string;
308
339
  };
309
340
  export type UpdateAppointmentResourceRequest = Partial<CreateAppointmentResourceRequest>;
310
341
  export type AppointmentResourceResponse = {
@@ -115,6 +115,7 @@ export declare const API_ENDPOINTS: {
115
115
  readonly method: "POST";
116
116
  readonly auth: "user";
117
117
  readonly responseKind: "json";
118
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
118
119
  };
119
120
  readonly getOnboardingPreviewStatus: {
120
121
  readonly path: "/public/sites/{siteId}/onboarding/preview-status";
@@ -136,6 +137,7 @@ export declare const API_ENDPOINTS: {
136
137
  readonly auth: "user";
137
138
  readonly errors: readonly [];
138
139
  readonly responseKind: "json";
140
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
139
141
  };
140
142
  readonly goLiveSite: {
141
143
  readonly path: "/sites/{siteId}/launch/go-live";
@@ -205,12 +207,14 @@ export declare const API_ENDPOINTS: {
205
207
  readonly method: "POST";
206
208
  readonly auth: "user";
207
209
  readonly responseKind: "json";
210
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
208
211
  };
209
212
  readonly aiSiteWizardIntakeTriage: {
210
213
  readonly path: "/sites/{siteId}/ai/site-wizard/intake-triage";
211
214
  readonly method: "POST";
212
215
  readonly auth: "user";
213
216
  readonly responseKind: "json";
217
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
214
218
  };
215
219
  readonly aiSiteWizardTelemetry: {
216
220
  readonly path: "/sites/{siteId}/ai/site-wizard/telemetry";
@@ -218,6 +222,7 @@ export declare const API_ENDPOINTS: {
218
222
  readonly auth: "user";
219
223
  readonly errors: readonly [];
220
224
  readonly responseKind: "json";
225
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
221
226
  };
222
227
  readonly listGscPropertiesAdmin: {
223
228
  readonly path: "/admin/seo/gsc/properties";
@@ -432,6 +437,7 @@ export declare const API_ENDPOINTS: {
432
437
  readonly method: "POST";
433
438
  readonly auth: "user";
434
439
  readonly responseKind: "json";
440
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
435
441
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "server:internal_error"];
436
442
  };
437
443
  readonly opsUpdateEventAttendeeCheckin: {
@@ -439,6 +445,7 @@ export declare const API_ENDPOINTS: {
439
445
  readonly method: "POST";
440
446
  readonly auth: "user";
441
447
  readonly responseKind: "json";
448
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
442
449
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "server:internal_error"];
443
450
  };
444
451
  readonly opsGetEventAttendeeDetails: {
@@ -452,6 +459,7 @@ export declare const API_ENDPOINTS: {
452
459
  readonly method: "POST";
453
460
  readonly auth: "user";
454
461
  readonly responseKind: "json";
462
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
455
463
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "resource:conflict", "server:internal_error"];
456
464
  };
457
465
  readonly getEventAttendeeDetails: {
@@ -473,6 +481,7 @@ export declare const API_ENDPOINTS: {
473
481
  readonly method: "POST";
474
482
  readonly auth: "user";
475
483
  readonly responseKind: "json";
484
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
476
485
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "resource:conflict", "server:internal_error"];
477
486
  };
478
487
  readonly getEmailSettings: {
@@ -495,6 +504,7 @@ export declare const API_ENDPOINTS: {
495
504
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:email-settings"];
496
505
  readonly auth: "user";
497
506
  readonly responseKind: "json";
507
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
498
508
  };
499
509
  readonly previewEmailTemplate: {
500
510
  readonly path: "/sites/{siteId}/settings/emails/preview";
@@ -545,6 +555,7 @@ export declare const API_ENDPOINTS: {
545
555
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:newsletter"];
546
556
  readonly auth: "user";
547
557
  readonly responseKind: "json";
558
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
548
559
  };
549
560
  readonly createNewsletterSubscribersImportUploadUrl: {
550
561
  readonly path: "/sites/{siteId}/newsletter/subscribers/import-url";
@@ -552,6 +563,7 @@ export declare const API_ENDPOINTS: {
552
563
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:newsletter"];
553
564
  readonly auth: "user";
554
565
  readonly responseKind: "json";
566
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
555
567
  };
556
568
  readonly exportNewsletterSubscribersCsv: {
557
569
  readonly path: "/sites/{siteId}/newsletter/subscribers/export.csv";
@@ -742,6 +754,7 @@ export declare const API_ENDPOINTS: {
742
754
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:newsletter"];
743
755
  readonly auth: "user";
744
756
  readonly responseKind: "json";
757
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
745
758
  };
746
759
  readonly testSendNewsletterCampaign: {
747
760
  readonly path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send";
@@ -749,6 +762,7 @@ export declare const API_ENDPOINTS: {
749
762
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:newsletter"];
750
763
  readonly auth: "user";
751
764
  readonly responseKind: "json";
765
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
752
766
  };
753
767
  readonly listNewsletterSendJobs: {
754
768
  readonly path: "/sites/{siteId}/newsletter/jobs";
@@ -786,6 +800,13 @@ export declare const API_ENDPOINTS: {
786
800
  readonly responseKind: "json";
787
801
  readonly errors: readonly ["validation:invalid_input", "billing:plan_limit_exceeded", "server:internal_error"];
788
802
  };
803
+ readonly createAppointmentResourceWithAccountAccess: {
804
+ readonly path: "/sites/{siteId}/bookings/resources/account-access";
805
+ readonly method: "POST";
806
+ readonly auth: "user";
807
+ readonly responseKind: "json";
808
+ readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "billing:plan_limit_exceeded", "resource:conflict", "resource:not_found", "server:internal_error"];
809
+ };
789
810
  readonly getAppointmentResource: {
790
811
  readonly path: "/sites/{siteId}/bookings/resources/{resourceId}";
791
812
  readonly method: "GET";
@@ -1278,6 +1299,7 @@ export declare const API_ENDPOINTS: {
1278
1299
  readonly tags: ["site", "site-{siteId}"];
1279
1300
  readonly auth: "user";
1280
1301
  readonly responseKind: "json";
1302
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
1281
1303
  };
1282
1304
  readonly listSiteMembers: {
1283
1305
  readonly path: "/sites/{siteId}/members";
@@ -1622,6 +1644,7 @@ export declare const API_ENDPOINTS: {
1622
1644
  readonly tags: ["site-{siteId}", "content-{siteId}-{type}"];
1623
1645
  readonly auth: "user";
1624
1646
  readonly responseKind: "json";
1647
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
1625
1648
  };
1626
1649
  readonly updateSiteGeneralSettings: {
1627
1650
  readonly path: "/sites/{siteId}/settings/general";
@@ -3639,6 +3662,7 @@ export declare const API_ENDPOINTS: {
3639
3662
  readonly method: "POST";
3640
3663
  readonly tags: ["site-{siteId}"];
3641
3664
  readonly auth: "user";
3665
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3642
3666
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "resource:conflict", "server:internal_error"];
3643
3667
  readonly responseKind: "json";
3644
3668
  };
@@ -3647,6 +3671,7 @@ export declare const API_ENDPOINTS: {
3647
3671
  readonly method: "POST";
3648
3672
  readonly tags: ["site-{siteId}"];
3649
3673
  readonly auth: "user";
3674
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3650
3675
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "resource:conflict", "server:internal_error"];
3651
3676
  readonly responseKind: "json";
3652
3677
  };
@@ -3863,6 +3888,7 @@ export declare const API_ENDPOINTS: {
3863
3888
  readonly tags: ["site-{siteId}", "passes-{siteId}"];
3864
3889
  readonly auth: "user";
3865
3890
  readonly responseKind: "json";
3891
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3866
3892
  readonly errors: readonly ["validation:invalid_input", "server:internal_error"];
3867
3893
  };
3868
3894
  readonly getBookingPass: {
@@ -3878,6 +3904,7 @@ export declare const API_ENDPOINTS: {
3878
3904
  readonly tags: ["site-{siteId}", "passes-{siteId}"];
3879
3905
  readonly auth: "user";
3880
3906
  readonly responseKind: "json";
3907
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3881
3908
  readonly errors: readonly ["validation:invalid_input", "resource:not_found", "server:internal_error"];
3882
3909
  };
3883
3910
  readonly deleteBookingPass: {
@@ -3886,6 +3913,7 @@ export declare const API_ENDPOINTS: {
3886
3913
  readonly tags: ["site-{siteId}", "passes-{siteId}"];
3887
3914
  readonly auth: "user";
3888
3915
  readonly responseKind: "json";
3916
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3889
3917
  readonly errors: readonly ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"];
3890
3918
  };
3891
3919
  readonly syncBookingPassWithStripe: {
@@ -3924,6 +3952,7 @@ export declare const API_ENDPOINTS: {
3924
3952
  readonly tags: ["site-{siteId}", "memberships-{siteId}"];
3925
3953
  readonly auth: "user";
3926
3954
  readonly responseKind: "json";
3955
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3927
3956
  readonly errors: readonly ["validation:invalid_input", "server:internal_error"];
3928
3957
  };
3929
3958
  readonly getBookingMembership: {
@@ -3939,6 +3968,7 @@ export declare const API_ENDPOINTS: {
3939
3968
  readonly tags: ["site-{siteId}", "memberships-{siteId}"];
3940
3969
  readonly auth: "user";
3941
3970
  readonly responseKind: "json";
3971
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3942
3972
  readonly errors: readonly ["validation:invalid_input", "resource:not_found", "server:internal_error"];
3943
3973
  };
3944
3974
  readonly deleteBookingMembership: {
@@ -3947,6 +3977,7 @@ export declare const API_ENDPOINTS: {
3947
3977
  readonly tags: ["site-{siteId}", "memberships-{siteId}"];
3948
3978
  readonly auth: "user";
3949
3979
  readonly responseKind: "json";
3980
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
3950
3981
  readonly errors: readonly ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"];
3951
3982
  };
3952
3983
  readonly listCustomerMembershipPayments: {
@@ -4102,6 +4133,7 @@ export declare const API_ENDPOINTS: {
4102
4133
  readonly tags: ["site-{siteId}", "customers-{siteId}"];
4103
4134
  readonly auth: "user";
4104
4135
  readonly responseKind: "json";
4136
+ readonly demoMutation: import("./apiEndpointTypes").ApiDemoMutationPolicy;
4105
4137
  readonly errors: readonly ["validation:invalid_input", "auth:forbidden", "resource:not_found", "resource:already_exists", "resource:conflict", "server:internal_error"];
4106
4138
  };
4107
4139
  readonly listCustomerPasses: {
@@ -8,6 +8,6 @@
8
8
  * to get only the types relevant to SDK usage.
9
9
  */
10
10
  export type { HTTPMethod, ApiResponseKind, ApiAuthRequirement, APIEndpointBase, ContentEntryStatus, ContentEntryListStage, } from '../common/types';
11
- export type { APIEndpoints } from '../types';
11
+ export type { APICallParams, APIEndpoints } from '../types';
12
12
  export type { SiteBySlugResponse, ContentTypeRoutingInfo, ContentTypeRoutingSubroute, NavigationMenuWithItems, NavigationMenuRecord, NavigationItemRecord, SiteLayoutResolvedPayload, SiteLayoutSettingsPayload, RiverbankSiteConfig, SdkThemeConfig, SdkThemePalette, SdkSiteStyleConfig, SdkSectionBackground, SdkSectionOptionsConfig, SdkContainerOptionsConfig, SdkBlockFieldConfig, SdkBlockFieldOptionsMap, SdkFieldSelectOption, ContentEntryListItem, ListPublishedEntriesResponse, PublishedContentEntryPreview, PublishedContentEntryPreviewResponse, PublishedPostPreview, PublishedPostPreviewResponse, FormRecord, PageRecord, PageRouteRecord, ContentRouteRecord, ContentEntryRecord, } from '../types';
13
13
  export type { Theme, SdkCustomBlock } from '@riverbankcms/blocks';