@savvycal/appointments-core 1.1.1 → 1.3.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
@@ -2156,6 +2156,12 @@ interface components {
2156
2156
  * "object": {
2157
2157
  * "abandoned_at": null,
2158
2158
  * "appointment": null,
2159
+ * "booking_policy": {
2160
+ * "hold": {
2161
+ * "duration": "PT10M",
2162
+ * "enabled": true
2163
+ * }
2164
+ * },
2159
2165
  * "client": null,
2160
2166
  * "client_data": {
2161
2167
  * "email": "jane@example.com",
@@ -2176,8 +2182,6 @@ interface components {
2176
2182
  * "utc": "2026-02-23T15:30:00Z"
2177
2183
  * },
2178
2184
  * "errors": null,
2179
- * "hold_duration": "PT10M",
2180
- * "hold_enabled": true,
2181
2185
  * "hold_until": "2026-02-22T10:10:00Z",
2182
2186
  * "id": "bi_abc123def456abc123def456",
2183
2187
  * "locked_fields": [
@@ -2202,6 +2206,20 @@ interface components {
2202
2206
  * "object": "provider",
2203
2207
  * "updated_at": "2017-09-13T10:11:12Z"
2204
2208
  * },
2209
+ * "requirements": {
2210
+ * "booking": {
2211
+ * "complete": true
2212
+ * },
2213
+ * "info": {
2214
+ * "complete": false
2215
+ * },
2216
+ * "submissions": [
2217
+ * {
2218
+ * "complete": false,
2219
+ * "form_id": "frm_abc123def456"
2220
+ * }
2221
+ * ]
2222
+ * },
2205
2223
  * "service": {
2206
2224
  * "appointment_type": "in_person",
2207
2225
  * "booking_policy": {
@@ -2294,7 +2312,19 @@ interface components {
2294
2312
  * },
2295
2313
  * "status": "slot_selected",
2296
2314
  * "submissions": [],
2297
- * "updated_at": "2026-02-22T10:00:00Z"
2315
+ * "updated_at": "2026-02-22T10:00:00Z",
2316
+ * "workflow": {
2317
+ * "available_steps": [
2318
+ * "booking",
2319
+ * "info",
2320
+ * "form:frm_abc123def456"
2321
+ * ],
2322
+ * "can_change_slot": true,
2323
+ * "can_complete": false,
2324
+ * "defunct_reason": null,
2325
+ * "is_defunct": false,
2326
+ * "resume_step": "info"
2327
+ * }
2298
2328
  * },
2299
2329
  * "type": "booking_intent.completed"
2300
2330
  * }
@@ -2381,8 +2411,12 @@ interface components {
2381
2411
  * CreateBookingIntentRequest
2382
2412
  * @description Request schema for creating a booking intent
2383
2413
  * @example {
2384
- * "hold_duration": "PT10M",
2385
- * "hold_enabled": true,
2414
+ * "booking_policy": {
2415
+ * "hold": {
2416
+ * "duration": "PT10M",
2417
+ * "enabled": true
2418
+ * }
2419
+ * },
2386
2420
  * "metadata": {
2387
2421
  * "source": "web"
2388
2422
  * },
@@ -2392,6 +2426,16 @@ interface components {
2392
2426
  CreateBookingIntentRequest: {
2393
2427
  /** @description When true, automatically assigns an available provider for the selected time slot if no provider_id is specified. */
2394
2428
  auto_assign_provider?: boolean | null;
2429
+ /** @description Policy overrides for this booking intent. When omitted, falls back to the service's policies. */
2430
+ booking_policy?: {
2431
+ /** @description Hold policy overrides. */
2432
+ hold?: {
2433
+ /** @description The duration of the hold as an ISO 8601 duration string. */
2434
+ duration?: string | null;
2435
+ /** @description Whether slot holds are enabled. */
2436
+ enabled?: boolean;
2437
+ } | null;
2438
+ } | null;
2395
2439
  /** @description Progressive client data to collect during the booking flow. */
2396
2440
  client_data?: {
2397
2441
  email?: string | null;
@@ -2413,12 +2457,8 @@ interface components {
2413
2457
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
2414
2458
  */
2415
2459
  end_at?: string | null;
2416
- /** @description The hold duration as an ISO 8601 duration string (e.g., PT10M). When omitted, falls back to the service's hold policy duration. */
2417
- hold_duration?: string | null;
2418
- /** @description Whether to enable slot holding. When omitted, falls back to the service's hold policy. */
2419
- hold_enabled?: boolean | null;
2420
- /** @description Fields to lock from public API updates. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. */
2421
- locked_fields?: string[] | null;
2460
+ /** @description Fields to lock from public API updates. */
2461
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
2422
2462
  /** @description Custom metadata key-value pairs. */
2423
2463
  metadata?: {
2424
2464
  [key: string]: unknown;
@@ -2449,6 +2489,12 @@ interface components {
2449
2489
  * "object": {
2450
2490
  * "abandoned_at": null,
2451
2491
  * "appointment": null,
2492
+ * "booking_policy": {
2493
+ * "hold": {
2494
+ * "duration": "PT10M",
2495
+ * "enabled": true
2496
+ * }
2497
+ * },
2452
2498
  * "client": null,
2453
2499
  * "client_data": {
2454
2500
  * "email": "jane@example.com",
@@ -2469,8 +2515,6 @@ interface components {
2469
2515
  * "utc": "2026-02-23T15:30:00Z"
2470
2516
  * },
2471
2517
  * "errors": null,
2472
- * "hold_duration": "PT10M",
2473
- * "hold_enabled": true,
2474
2518
  * "hold_until": "2026-02-22T10:10:00Z",
2475
2519
  * "id": "bi_abc123def456abc123def456",
2476
2520
  * "locked_fields": [
@@ -2495,6 +2539,20 @@ interface components {
2495
2539
  * "object": "provider",
2496
2540
  * "updated_at": "2017-09-13T10:11:12Z"
2497
2541
  * },
2542
+ * "requirements": {
2543
+ * "booking": {
2544
+ * "complete": true
2545
+ * },
2546
+ * "info": {
2547
+ * "complete": false
2548
+ * },
2549
+ * "submissions": [
2550
+ * {
2551
+ * "complete": false,
2552
+ * "form_id": "frm_abc123def456"
2553
+ * }
2554
+ * ]
2555
+ * },
2498
2556
  * "service": {
2499
2557
  * "appointment_type": "in_person",
2500
2558
  * "booking_policy": {
@@ -2587,7 +2645,19 @@ interface components {
2587
2645
  * },
2588
2646
  * "status": "slot_selected",
2589
2647
  * "submissions": [],
2590
- * "updated_at": "2026-02-22T10:00:00Z"
2648
+ * "updated_at": "2026-02-22T10:00:00Z",
2649
+ * "workflow": {
2650
+ * "available_steps": [
2651
+ * "booking",
2652
+ * "info",
2653
+ * "form:frm_abc123def456"
2654
+ * ],
2655
+ * "can_change_slot": true,
2656
+ * "can_complete": false,
2657
+ * "defunct_reason": null,
2658
+ * "is_defunct": false,
2659
+ * "resume_step": "info"
2660
+ * }
2591
2661
  * },
2592
2662
  * "type": "booking_intent.abandoned"
2593
2663
  * }
@@ -2770,6 +2840,41 @@ interface components {
2770
2840
  */
2771
2841
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
2772
2842
  };
2843
+ /**
2844
+ * BookingIntentRequirements
2845
+ * @description Per-section completeness status for a booking intent. Provides boolean
2846
+ * signals for whether each section of the booking flow has enough data
2847
+ * to proceed, enabling the frontend to make navigation decisions without
2848
+ * parsing error pointers.
2849
+ * @example {
2850
+ * "booking": {
2851
+ * "complete": true
2852
+ * },
2853
+ * "info": {
2854
+ * "complete": false
2855
+ * },
2856
+ * "submissions": [
2857
+ * {
2858
+ * "complete": false,
2859
+ * "form_id": "frm_abc123def456"
2860
+ * }
2861
+ * ]
2862
+ * }
2863
+ */
2864
+ BookingIntentRequirements: {
2865
+ /** @description Booking step completeness status. */
2866
+ booking: {
2867
+ /** @description Whether the booking step is complete (provider and slot fields are present). */
2868
+ complete: boolean;
2869
+ };
2870
+ /** @description Info step completeness status. */
2871
+ info: {
2872
+ /** @description Whether the info step is complete (required client fields are present). */
2873
+ complete: boolean;
2874
+ };
2875
+ /** @description Per-form completeness status, in the same order as the service's forms. */
2876
+ submissions: components["schemas"]["SubmissionRequirement"][];
2877
+ };
2773
2878
  /**
2774
2879
  * ServiceProvider
2775
2880
  * @description A service provider
@@ -2958,6 +3063,12 @@ interface components {
2958
3063
  * "object": {
2959
3064
  * "abandoned_at": null,
2960
3065
  * "appointment": null,
3066
+ * "booking_policy": {
3067
+ * "hold": {
3068
+ * "duration": "PT10M",
3069
+ * "enabled": true
3070
+ * }
3071
+ * },
2961
3072
  * "client": null,
2962
3073
  * "client_data": {
2963
3074
  * "email": "jane@example.com",
@@ -2978,8 +3089,6 @@ interface components {
2978
3089
  * "utc": "2026-02-23T15:30:00Z"
2979
3090
  * },
2980
3091
  * "errors": null,
2981
- * "hold_duration": "PT10M",
2982
- * "hold_enabled": true,
2983
3092
  * "hold_until": "2026-02-22T10:10:00Z",
2984
3093
  * "id": "bi_abc123def456abc123def456",
2985
3094
  * "locked_fields": [
@@ -3004,6 +3113,20 @@ interface components {
3004
3113
  * "object": "provider",
3005
3114
  * "updated_at": "2017-09-13T10:11:12Z"
3006
3115
  * },
3116
+ * "requirements": {
3117
+ * "booking": {
3118
+ * "complete": true
3119
+ * },
3120
+ * "info": {
3121
+ * "complete": false
3122
+ * },
3123
+ * "submissions": [
3124
+ * {
3125
+ * "complete": false,
3126
+ * "form_id": "frm_abc123def456"
3127
+ * }
3128
+ * ]
3129
+ * },
3007
3130
  * "service": {
3008
3131
  * "appointment_type": "in_person",
3009
3132
  * "booking_policy": {
@@ -3096,7 +3219,19 @@ interface components {
3096
3219
  * },
3097
3220
  * "status": "slot_selected",
3098
3221
  * "submissions": [],
3099
- * "updated_at": "2026-02-22T10:00:00Z"
3222
+ * "updated_at": "2026-02-22T10:00:00Z",
3223
+ * "workflow": {
3224
+ * "available_steps": [
3225
+ * "booking",
3226
+ * "info",
3227
+ * "form:frm_abc123def456"
3228
+ * ],
3229
+ * "can_change_slot": true,
3230
+ * "can_complete": false,
3231
+ * "defunct_reason": null,
3232
+ * "is_defunct": false,
3233
+ * "resume_step": "info"
3234
+ * }
3100
3235
  * },
3101
3236
  * "type": "booking_intent.updated"
3102
3237
  * }
@@ -3377,6 +3512,12 @@ interface components {
3377
3512
  * {
3378
3513
  * "abandoned_at": null,
3379
3514
  * "appointment": null,
3515
+ * "booking_policy": {
3516
+ * "hold": {
3517
+ * "duration": "PT10M",
3518
+ * "enabled": true
3519
+ * }
3520
+ * },
3380
3521
  * "client": null,
3381
3522
  * "client_data": {
3382
3523
  * "email": "jane@example.com",
@@ -3397,8 +3538,6 @@ interface components {
3397
3538
  * "utc": "2026-02-23T15:30:00Z"
3398
3539
  * },
3399
3540
  * "errors": null,
3400
- * "hold_duration": "PT10M",
3401
- * "hold_enabled": true,
3402
3541
  * "hold_until": "2026-02-22T10:10:00Z",
3403
3542
  * "id": "bi_abc123def456abc123def456",
3404
3543
  * "locked_fields": [
@@ -3423,6 +3562,20 @@ interface components {
3423
3562
  * "object": "provider",
3424
3563
  * "updated_at": "2017-09-13T10:11:12Z"
3425
3564
  * },
3565
+ * "requirements": {
3566
+ * "booking": {
3567
+ * "complete": true
3568
+ * },
3569
+ * "info": {
3570
+ * "complete": false
3571
+ * },
3572
+ * "submissions": [
3573
+ * {
3574
+ * "complete": false,
3575
+ * "form_id": "frm_abc123def456"
3576
+ * }
3577
+ * ]
3578
+ * },
3426
3579
  * "service": {
3427
3580
  * "appointment_type": "in_person",
3428
3581
  * "booking_policy": {
@@ -3515,7 +3668,19 @@ interface components {
3515
3668
  * },
3516
3669
  * "status": "slot_selected",
3517
3670
  * "submissions": [],
3518
- * "updated_at": "2026-02-22T10:00:00Z"
3671
+ * "updated_at": "2026-02-22T10:00:00Z",
3672
+ * "workflow": {
3673
+ * "available_steps": [
3674
+ * "booking",
3675
+ * "info",
3676
+ * "form:frm_abc123def456"
3677
+ * ],
3678
+ * "can_change_slot": true,
3679
+ * "can_complete": false,
3680
+ * "defunct_reason": null,
3681
+ * "is_defunct": false,
3682
+ * "resume_step": "info"
3683
+ * }
3519
3684
  * }
3520
3685
  * ],
3521
3686
  * "meta": {
@@ -3713,6 +3878,12 @@ interface components {
3713
3878
  * "object": {
3714
3879
  * "abandoned_at": null,
3715
3880
  * "appointment": null,
3881
+ * "booking_policy": {
3882
+ * "hold": {
3883
+ * "duration": "PT10M",
3884
+ * "enabled": true
3885
+ * }
3886
+ * },
3716
3887
  * "client": null,
3717
3888
  * "client_data": {
3718
3889
  * "email": "jane@example.com",
@@ -3733,8 +3904,6 @@ interface components {
3733
3904
  * "utc": "2026-02-23T15:30:00Z"
3734
3905
  * },
3735
3906
  * "errors": null,
3736
- * "hold_duration": "PT10M",
3737
- * "hold_enabled": true,
3738
3907
  * "hold_until": "2026-02-22T10:10:00Z",
3739
3908
  * "id": "bi_abc123def456abc123def456",
3740
3909
  * "locked_fields": [
@@ -3759,6 +3928,20 @@ interface components {
3759
3928
  * "object": "provider",
3760
3929
  * "updated_at": "2017-09-13T10:11:12Z"
3761
3930
  * },
3931
+ * "requirements": {
3932
+ * "booking": {
3933
+ * "complete": true
3934
+ * },
3935
+ * "info": {
3936
+ * "complete": false
3937
+ * },
3938
+ * "submissions": [
3939
+ * {
3940
+ * "complete": false,
3941
+ * "form_id": "frm_abc123def456"
3942
+ * }
3943
+ * ]
3944
+ * },
3762
3945
  * "service": {
3763
3946
  * "appointment_type": "in_person",
3764
3947
  * "booking_policy": {
@@ -3851,7 +4034,19 @@ interface components {
3851
4034
  * },
3852
4035
  * "status": "slot_selected",
3853
4036
  * "submissions": [],
3854
- * "updated_at": "2026-02-22T10:00:00Z"
4037
+ * "updated_at": "2026-02-22T10:00:00Z",
4038
+ * "workflow": {
4039
+ * "available_steps": [
4040
+ * "booking",
4041
+ * "info",
4042
+ * "form:frm_abc123def456"
4043
+ * ],
4044
+ * "can_change_slot": true,
4045
+ * "can_complete": false,
4046
+ * "defunct_reason": null,
4047
+ * "is_defunct": false,
4048
+ * "resume_step": "info"
4049
+ * }
3855
4050
  * },
3856
4051
  * "type": "booking_intent.created"
3857
4052
  * }
@@ -3900,7 +4095,7 @@ interface components {
3900
4095
  * IntentSubmissionInput
3901
4096
  * @description A form submission entry containing a form ID and response data.
3902
4097
  * @example {
3903
- * "form_id": "frm_abc123def456abc123def456",
4098
+ * "form_id": "frm_abc123def456",
3904
4099
  * "responses": {
3905
4100
  * "color": [
3906
4101
  * "opt_abc"
@@ -4136,6 +4331,19 @@ interface components {
4136
4331
  */
4137
4332
  type: "connected_account.reconnected";
4138
4333
  };
4334
+ /**
4335
+ * BookingIntentBookingPolicy
4336
+ * @description Policy overrides applied to this booking intent.
4337
+ * @example {
4338
+ * "hold": {
4339
+ * "duration": "PT10M",
4340
+ * "enabled": true
4341
+ * }
4342
+ * }
4343
+ */
4344
+ BookingIntentBookingPolicy: {
4345
+ hold: components["schemas"]["HoldPolicy"];
4346
+ };
4139
4347
  /**
4140
4348
  * Client
4141
4349
  * @description This is an object representing a client.
@@ -5201,6 +5409,16 @@ interface components {
5201
5409
  UpdateBookingIntentRequest: {
5202
5410
  /** @description When true, automatically assigns an available provider for the selected time slot if no provider_id is specified. */
5203
5411
  auto_assign_provider?: boolean | null;
5412
+ /** @description Policy overrides for this booking intent. When omitted, falls back to the service's policies if service is changing. */
5413
+ booking_policy?: {
5414
+ /** @description Hold policy overrides. */
5415
+ hold?: {
5416
+ /** @description The duration of the hold as an ISO 8601 duration string. */
5417
+ duration?: string | null;
5418
+ /** @description Whether slot holds are enabled. */
5419
+ enabled?: boolean;
5420
+ } | null;
5421
+ } | null;
5204
5422
  /** @description Progressive client data. Provided fields are merged with existing values. */
5205
5423
  client_data?: {
5206
5424
  email?: string | null;
@@ -5222,12 +5440,8 @@ interface components {
5222
5440
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
5223
5441
  */
5224
5442
  end_at?: string | null;
5225
- /** @description The hold duration as an ISO 8601 duration string (e.g., PT10M). When omitted, falls back to the service's hold policy duration. */
5226
- hold_duration?: string | null;
5227
- /** @description Whether to enable slot holding. When omitted, falls back to the service's hold policy if service is changing. */
5228
- hold_enabled?: boolean | null;
5229
- /** @description Fields to lock from public API updates. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. Replaces existing locked_fields entirely. */
5230
- locked_fields?: string[] | null;
5443
+ /** @description Fields to lock from public API updates. Replaces existing locked_fields entirely. */
5444
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
5231
5445
  /** @description Custom metadata key-value pairs. Replaces existing metadata entirely. */
5232
5446
  metadata?: {
5233
5447
  [key: string]: unknown;
@@ -7155,6 +7369,20 @@ interface components {
7155
7369
  * "id": "bi_abc123def456abc123def456",
7156
7370
  * "locked_fields": [],
7157
7371
  * "object": "public_booking_intent",
7372
+ * "requirements": {
7373
+ * "booking": {
7374
+ * "complete": true
7375
+ * },
7376
+ * "info": {
7377
+ * "complete": false
7378
+ * },
7379
+ * "submissions": [
7380
+ * {
7381
+ * "complete": false,
7382
+ * "form_id": "frm_abc123def456"
7383
+ * }
7384
+ * ]
7385
+ * },
7158
7386
  * "start_at": {
7159
7387
  * "local": "2026-02-23T10:00:00-05:00",
7160
7388
  * "object": "zoned_date_time",
@@ -7162,7 +7390,19 @@ interface components {
7162
7390
  * "unix_ts": 1771945200,
7163
7391
  * "utc": "2026-02-23T15:00:00Z"
7164
7392
  * },
7165
- * "status": "slot_selected"
7393
+ * "status": "slot_selected",
7394
+ * "workflow": {
7395
+ * "available_steps": [
7396
+ * "booking",
7397
+ * "info",
7398
+ * "form:frm_abc123def456"
7399
+ * ],
7400
+ * "can_change_slot": true,
7401
+ * "can_complete": false,
7402
+ * "defunct_reason": null,
7403
+ * "is_defunct": false,
7404
+ * "resume_step": "info"
7405
+ * }
7166
7406
  * }
7167
7407
  */
7168
7408
  PublicBookingIntent: {
@@ -7179,20 +7419,22 @@ interface components {
7179
7419
  hold_until?: string | null;
7180
7420
  /** @description The booking intent ID */
7181
7421
  id: string;
7182
- /** @description Fields that are locked and cannot be updated via the public API. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. */
7183
- locked_fields?: string[];
7422
+ /** @description Fields that are locked and cannot be updated via the public API. */
7423
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
7184
7424
  /**
7185
7425
  * @description The object type
7186
7426
  * @enum {string}
7187
7427
  */
7188
7428
  object: "public_booking_intent";
7429
+ requirements?: components["schemas"]["BookingIntentRequirements"];
7189
7430
  /** @description The start time of the selected slot */
7190
7431
  start_at?: components["schemas"]["ZonedDateTime"] | null;
7191
7432
  /**
7192
- * @description The current status of the booking intent
7433
+ * @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
7193
7434
  * @enum {string}
7194
7435
  */
7195
7436
  status: "pending" | "slot_selected" | "completed" | "abandoned";
7437
+ workflow?: components["schemas"]["BookingIntentWorkflow"];
7196
7438
  };
7197
7439
  /**
7198
7440
  * ServiceForm
@@ -7674,6 +7916,20 @@ interface components {
7674
7916
  */
7675
7917
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
7676
7918
  };
7919
+ /**
7920
+ * SubmissionRequirement
7921
+ * @description Completeness status for a single form submission.
7922
+ * @example {
7923
+ * "complete": false,
7924
+ * "form_id": "frm_abc123def456"
7925
+ * }
7926
+ */
7927
+ SubmissionRequirement: {
7928
+ /** @description Whether the submission exists and all required fields have been answered. */
7929
+ complete: boolean;
7930
+ /** @description The form's object ID. */
7931
+ form_id: string;
7932
+ };
7677
7933
  /**
7678
7934
  * PublicBookingIntentResponse
7679
7935
  * @description Response schema for a single booking intent via a public interface.
@@ -7692,6 +7948,20 @@ interface components {
7692
7948
  * "id": "bi_abc123def456abc123def456",
7693
7949
  * "locked_fields": [],
7694
7950
  * "object": "public_booking_intent",
7951
+ * "requirements": {
7952
+ * "booking": {
7953
+ * "complete": true
7954
+ * },
7955
+ * "info": {
7956
+ * "complete": false
7957
+ * },
7958
+ * "submissions": [
7959
+ * {
7960
+ * "complete": false,
7961
+ * "form_id": "frm_abc123def456"
7962
+ * }
7963
+ * ]
7964
+ * },
7695
7965
  * "start_at": {
7696
7966
  * "local": "2026-02-23T10:00:00-05:00",
7697
7967
  * "object": "zoned_date_time",
@@ -7699,7 +7969,19 @@ interface components {
7699
7969
  * "unix_ts": 1771945200,
7700
7970
  * "utc": "2026-02-23T15:00:00Z"
7701
7971
  * },
7702
- * "status": "slot_selected"
7972
+ * "status": "slot_selected",
7973
+ * "workflow": {
7974
+ * "available_steps": [
7975
+ * "booking",
7976
+ * "info",
7977
+ * "form:frm_abc123def456"
7978
+ * ],
7979
+ * "can_change_slot": true,
7980
+ * "can_complete": false,
7981
+ * "defunct_reason": null,
7982
+ * "is_defunct": false,
7983
+ * "resume_step": "info"
7984
+ * }
7703
7985
  * }
7704
7986
  * }
7705
7987
  */
@@ -8297,6 +8579,12 @@ interface components {
8297
8579
  * "data": {
8298
8580
  * "abandoned_at": null,
8299
8581
  * "appointment": null,
8582
+ * "booking_policy": {
8583
+ * "hold": {
8584
+ * "duration": "PT10M",
8585
+ * "enabled": true
8586
+ * }
8587
+ * },
8300
8588
  * "client": null,
8301
8589
  * "client_data": {
8302
8590
  * "email": "jane@example.com",
@@ -8317,8 +8605,6 @@ interface components {
8317
8605
  * "utc": "2026-02-23T15:30:00Z"
8318
8606
  * },
8319
8607
  * "errors": null,
8320
- * "hold_duration": "PT10M",
8321
- * "hold_enabled": true,
8322
8608
  * "hold_until": "2026-02-22T10:10:00Z",
8323
8609
  * "id": "bi_abc123def456abc123def456",
8324
8610
  * "locked_fields": [
@@ -8343,6 +8629,20 @@ interface components {
8343
8629
  * "object": "provider",
8344
8630
  * "updated_at": "2017-09-13T10:11:12Z"
8345
8631
  * },
8632
+ * "requirements": {
8633
+ * "booking": {
8634
+ * "complete": true
8635
+ * },
8636
+ * "info": {
8637
+ * "complete": false
8638
+ * },
8639
+ * "submissions": [
8640
+ * {
8641
+ * "complete": false,
8642
+ * "form_id": "frm_abc123def456"
8643
+ * }
8644
+ * ]
8645
+ * },
8346
8646
  * "service": {
8347
8647
  * "appointment_type": "in_person",
8348
8648
  * "booking_policy": {
@@ -8435,7 +8735,19 @@ interface components {
8435
8735
  * },
8436
8736
  * "status": "slot_selected",
8437
8737
  * "submissions": [],
8438
- * "updated_at": "2026-02-22T10:00:00Z"
8738
+ * "updated_at": "2026-02-22T10:00:00Z",
8739
+ * "workflow": {
8740
+ * "available_steps": [
8741
+ * "booking",
8742
+ * "info",
8743
+ * "form:frm_abc123def456"
8744
+ * ],
8745
+ * "can_change_slot": true,
8746
+ * "can_complete": false,
8747
+ * "defunct_reason": null,
8748
+ * "is_defunct": false,
8749
+ * "resume_step": "info"
8750
+ * }
8439
8751
  * }
8440
8752
  * }
8441
8753
  */
@@ -9335,6 +9647,41 @@ interface components {
9335
9647
  reschedule: string[];
9336
9648
  };
9337
9649
  };
9650
+ /**
9651
+ * BookingIntentWorkflow
9652
+ * @description Server-computed workflow state for a booking intent. Provides step routing,
9653
+ * completability, and defunct state so the frontend can render the correct
9654
+ * booking flow without inferring these from raw fields.
9655
+ * @example {
9656
+ * "available_steps": [
9657
+ * "booking",
9658
+ * "info",
9659
+ * "form:frm_abc123def456"
9660
+ * ],
9661
+ * "can_change_slot": true,
9662
+ * "can_complete": false,
9663
+ * "defunct_reason": null,
9664
+ * "is_defunct": false,
9665
+ * "resume_step": "info"
9666
+ * }
9667
+ */
9668
+ BookingIntentWorkflow: {
9669
+ /** @description Ordered list of steps the user can visit. Computed from service forms and locked_fields. */
9670
+ available_steps: string[];
9671
+ /** @description Whether slot fields (start_at, end_at, time_zone) are unlocked and can be modified. */
9672
+ can_change_slot: boolean;
9673
+ /** @description Whether the intent has enough valid data to submit right now. When true, calling the complete endpoint will succeed regardless of whether the current status is pending or slot_selected. */
9674
+ can_complete: boolean;
9675
+ /**
9676
+ * @description Why the intent is defunct. Null when not defunct.
9677
+ * @enum {string|null}
9678
+ */
9679
+ defunct_reason?: "abandoned" | "no_available_steps" | "status_invalid" | null;
9680
+ /** @description Whether the intent is in an unrecoverable state and should render a terminal UI. */
9681
+ is_defunct: boolean;
9682
+ /** @description The step the UI should show on load or resume. One of: booking, info, form:<form_id>, confirmed, defunct. */
9683
+ resume_step: string;
9684
+ };
9338
9685
  /**
9339
9686
  * ProviderDeactivatedEventData
9340
9687
  * @description This is an object representing data for the provider deactivated event.
@@ -9725,6 +10072,12 @@ interface components {
9725
10072
  * @example {
9726
10073
  * "abandoned_at": null,
9727
10074
  * "appointment": null,
10075
+ * "booking_policy": {
10076
+ * "hold": {
10077
+ * "duration": "PT10M",
10078
+ * "enabled": true
10079
+ * }
10080
+ * },
9728
10081
  * "client": null,
9729
10082
  * "client_data": {
9730
10083
  * "email": "jane@example.com",
@@ -9745,8 +10098,6 @@ interface components {
9745
10098
  * "utc": "2026-02-23T15:30:00Z"
9746
10099
  * },
9747
10100
  * "errors": null,
9748
- * "hold_duration": "PT10M",
9749
- * "hold_enabled": true,
9750
10101
  * "hold_until": "2026-02-22T10:10:00Z",
9751
10102
  * "id": "bi_abc123def456abc123def456",
9752
10103
  * "locked_fields": [
@@ -9771,6 +10122,20 @@ interface components {
9771
10122
  * "object": "provider",
9772
10123
  * "updated_at": "2017-09-13T10:11:12Z"
9773
10124
  * },
10125
+ * "requirements": {
10126
+ * "booking": {
10127
+ * "complete": true
10128
+ * },
10129
+ * "info": {
10130
+ * "complete": false
10131
+ * },
10132
+ * "submissions": [
10133
+ * {
10134
+ * "complete": false,
10135
+ * "form_id": "frm_abc123def456"
10136
+ * }
10137
+ * ]
10138
+ * },
9774
10139
  * "service": {
9775
10140
  * "appointment_type": "in_person",
9776
10141
  * "booking_policy": {
@@ -9863,7 +10228,19 @@ interface components {
9863
10228
  * },
9864
10229
  * "status": "slot_selected",
9865
10230
  * "submissions": [],
9866
- * "updated_at": "2026-02-22T10:00:00Z"
10231
+ * "updated_at": "2026-02-22T10:00:00Z",
10232
+ * "workflow": {
10233
+ * "available_steps": [
10234
+ * "booking",
10235
+ * "info",
10236
+ * "form:frm_abc123def456"
10237
+ * ],
10238
+ * "can_change_slot": true,
10239
+ * "can_complete": false,
10240
+ * "defunct_reason": null,
10241
+ * "is_defunct": false,
10242
+ * "resume_step": "info"
10243
+ * }
9867
10244
  * }
9868
10245
  */
9869
10246
  BookingIntent: {
@@ -9874,6 +10251,7 @@ interface components {
9874
10251
  abandoned_at?: string | null;
9875
10252
  /** @description The created appointment. Present when status is completed. */
9876
10253
  appointment?: components["schemas"]["Appointment"] | null;
10254
+ booking_policy: components["schemas"]["BookingIntentBookingPolicy"];
9877
10255
  /** @description The linked client */
9878
10256
  client?: components["schemas"]["Client"] | null;
9879
10257
  /** @description Client data accumulated during the booking flow. Sensitive fields (first_name, last_name, email, phone) are redacted unless include_sensitive is true. */
@@ -9900,10 +10278,6 @@ interface components {
9900
10278
  end_at?: components["schemas"]["ZonedDateTime"] | null;
9901
10279
  /** @description Validation errors for data provided so far. Fields not yet submitted are not flagged. Null when not computed. */
9902
10280
  errors?: components["schemas"]["JsonError"][] | null;
9903
- /** @description The hold duration as an ISO 8601 duration string (e.g., PT10M) */
9904
- hold_duration?: string | null;
9905
- /** @description Whether slot holding is enabled */
9906
- hold_enabled: boolean;
9907
10281
  /**
9908
10282
  * Format: date-time
9909
10283
  * @description When the hold expires (UTC)
@@ -9911,8 +10285,8 @@ interface components {
9911
10285
  hold_until?: string | null;
9912
10286
  /** @description The booking intent ID */
9913
10287
  id: string;
9914
- /** @description Fields that are locked and cannot be updated via the public API. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. */
9915
- locked_fields?: string[];
10288
+ /** @description Fields that are locked and cannot be updated via the public API. */
10289
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[];
9916
10290
  /** @description Custom metadata key-value pairs */
9917
10291
  metadata?: {
9918
10292
  [key: string]: unknown;
@@ -9924,6 +10298,8 @@ interface components {
9924
10298
  object: "booking_intent";
9925
10299
  /** @description The assigned provider */
9926
10300
  provider?: components["schemas"]["Provider"] | null;
10301
+ /** @description Per-section completeness status. Present on single-intent responses, null on list responses. */
10302
+ requirements?: components["schemas"]["BookingIntentRequirements"] | null;
9927
10303
  /** @description The selected service */
9928
10304
  service?: components["schemas"]["Service"] | null;
9929
10305
  /** @description Whether the slot has been prevalidated. When true, public completion skips slot validation. */
@@ -9931,7 +10307,7 @@ interface components {
9931
10307
  /** @description The start time of the selected slot */
9932
10308
  start_at?: components["schemas"]["ZonedDateTime"] | null;
9933
10309
  /**
9934
- * @description The current status of the booking intent
10310
+ * @description The current status of the booking intent. Automatically transitions from pending to slot_selected when provider_id, start_at, end_at, and time_zone are all present (on create or update).
9935
10311
  * @enum {string}
9936
10312
  */
9937
10313
  status: "pending" | "slot_selected" | "completed" | "abandoned";
@@ -9942,6 +10318,8 @@ interface components {
9942
10318
  * @description When the intent was last updated
9943
10319
  */
9944
10320
  updated_at: string;
10321
+ /** @description Server-computed workflow state. Present on single-intent responses, null on list responses. */
10322
+ workflow?: components["schemas"]["BookingIntentWorkflow"] | null;
9945
10323
  };
9946
10324
  /**
9947
10325
  * CreateServiceRequest
@@ -15014,11 +15392,14 @@ type BlocksResponse = Schemas["BlocksResponse"];
15014
15392
  type BlockUpdatedEventData = Schemas["BlockUpdatedEventData"];
15015
15393
  type BookingIntent = Schemas["BookingIntent"];
15016
15394
  type BookingIntentAbandonedEventData = Schemas["BookingIntentAbandonedEventData"];
15395
+ type BookingIntentBookingPolicy = Schemas["BookingIntentBookingPolicy"];
15017
15396
  type BookingIntentCompletedEventData = Schemas["BookingIntentCompletedEventData"];
15018
15397
  type BookingIntentCreatedEventData = Schemas["BookingIntentCreatedEventData"];
15398
+ type BookingIntentRequirements = Schemas["BookingIntentRequirements"];
15019
15399
  type BookingIntentResponse = Schemas["BookingIntentResponse"];
15020
15400
  type BookingIntentsResponse = Schemas["BookingIntentsResponse"];
15021
15401
  type BookingIntentUpdatedEventData = Schemas["BookingIntentUpdatedEventData"];
15402
+ type BookingIntentWorkflow = Schemas["BookingIntentWorkflow"];
15022
15403
  type BookingPolicy = Schemas["BookingPolicy"];
15023
15404
  type CancelAppointmentRequest = Schemas["CancelAppointmentRequest"];
15024
15405
  type CancellationEvent = Schemas["CancellationEvent"];
@@ -15136,6 +15517,7 @@ type ServiceUpdatedEventData = Schemas["ServiceUpdatedEventData"];
15136
15517
  type Slot = Schemas["Slot"];
15137
15518
  type SlotRule = Schemas["SlotRule"];
15138
15519
  type SortServiceFormsRequest = Schemas["SortServiceFormsRequest"];
15520
+ type SubmissionRequirement = Schemas["SubmissionRequirement"];
15139
15521
  type UnauthorizedResponse = Schemas["UnauthorizedResponse"];
15140
15522
  type UpdateAccountRequest = Schemas["UpdateAccountRequest"];
15141
15523
  type UpdateAccountUserRequest = Schemas["UpdateAccountUserRequest"];
@@ -15967,6 +16349,12 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
15967
16349
  }, {
15968
16350
  body: {
15969
16351
  auto_assign_provider?: boolean | null;
16352
+ booking_policy?: {
16353
+ hold?: {
16354
+ duration?: string | null;
16355
+ enabled?: boolean;
16356
+ } | null;
16357
+ } | null;
15970
16358
  client_data?: {
15971
16359
  email?: string | null;
15972
16360
  fields?: {
@@ -15981,9 +16369,7 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
15981
16369
  } | null;
15982
16370
  client_id?: string | null;
15983
16371
  end_at?: string | null;
15984
- hold_duration?: string | null;
15985
- hold_enabled?: boolean | null;
15986
- locked_fields?: string[] | null;
16372
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
15987
16373
  metadata?: {
15988
16374
  [key: string]: unknown;
15989
16375
  } | null;
@@ -19515,6 +19901,12 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
19515
19901
  }, {
19516
19902
  body: {
19517
19903
  auto_assign_provider?: boolean | null;
19904
+ booking_policy?: {
19905
+ hold?: {
19906
+ duration?: string | null;
19907
+ enabled?: boolean;
19908
+ } | null;
19909
+ } | null;
19518
19910
  client_data?: {
19519
19911
  email?: string | null;
19520
19912
  fields?: {
@@ -19529,9 +19921,7 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
19529
19921
  } | null;
19530
19922
  client_id?: string | null;
19531
19923
  end_at?: string | null;
19532
- hold_duration?: string | null;
19533
- hold_enabled?: boolean | null;
19534
- locked_fields?: string[] | null;
19924
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
19535
19925
  metadata?: {
19536
19926
  [key: string]: unknown;
19537
19927
  } | null;
@@ -20123,4 +20513,4 @@ declare function updateService(client: FetchClient, path: PathParams<"/v1/servic
20123
20513
  };
20124
20514
  }, `${string}/${string}`>>;
20125
20515
 
20126
- export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };
20516
+ export { type Account, type AccountEvent, type AccountResponse, type AccountUser, type AccountUserCreatedEventData, type AccountUserDeletedEventData, type AccountUserResponse, type AccountUserUpdatedEventData, type AccountUsersResponse, type AccountsResponse, type AdvanceNoticePolicy, type AggregatedSlot, type Appointment, type AppointmentCanceledEventData, type AppointmentConfirmedEventData, type AppointmentCreatedEventData, type AppointmentDeletedEventData, type AppointmentRescheduledEventData, type AppointmentResponse, type AppointmentsResponse, type AttachServiceFormRequest, type Block, type BlockCreatedEventData, type BlockDeletedEventData, type BlockResponse, type BlockUpdatedEventData, type BlocksResponse, type BookingIntent, type BookingIntentAbandonedEventData, type BookingIntentBookingPolicy, type BookingIntentCompletedEventData, type BookingIntentCreatedEventData, type BookingIntentRequirements, type BookingIntentResponse, type BookingIntentUpdatedEventData, type BookingIntentWorkflow, type BookingIntentsResponse, type BookingPolicy, type CancelAppointmentRequest, type CancelPublicAppointmentRequest, type CancellationEvent, type CancellationPolicy, type CancellationReason, type CancellationReasonResponse, type CancellationReasonsResponse, type Client, type ClientCreatedEventData, type ClientDeletedEventData, type ClientField, type ClientFieldChoice, type ClientFieldOptions, type ClientFieldResponse, type ClientFieldsResponse, type ClientResponse, type ClientUpdatedEventData, type ClientsResponse, type CompleteBookingIntentRequest, type CompletePublicBookingIntentRequest, type ConfirmAppointmentRequest, type ConfirmationEvent, type ConnectedAccount, type ConnectedAccountCreatedEventData, type ConnectedAccountDeletedEventData, type ConnectedAccountReconnectedEventData, type ConnectedAccountRefreshFailedEventData, type ConnectedAccountResponse, type ConnectedAccountsResponse, type CreateAccountRequest, type CreateAccountUserRequest, type CreateAppointmentRequest, type CreateBlockRequest, type CreateBookingIntentRequest, type CreateCancellationReasonRequest, type CreateClientFieldRequest, type CreateClientRequest, type CreateDashboardSessionRequest, type CreateFormRequest, type CreateProviderRequest, type CreateProviderScheduleRequest, type CreatePublicAppointmentRequest, type CreatePublicBookingIntentRequest, type CreateServiceProviderRequest, type CreateServiceRequest, type DashboardSession, type DashboardSessionResponse, type FetchClient, type FetchClientOptions, type FieldChoice, type FieldChoiceInput, type FieldOptions, type FieldOptionsInput, type ForbiddenResponse, type Form, type FormDetail, type FormField, type FormFieldInput, type FormResponse, type FormsResponse, type GenericErrorResponse, type HoldPolicy, type IntentSubmissionInput, type JsonError, type JsonErrorResponse, type MaximizeUtilizationPolicy, type NotFoundResponse, type PaginationMeta, type PathParams, type Platform, type PlatformResponse, type Provider, type ProviderCreatedEventData, type ProviderDeactivatedEventData, type ProviderNotificationConfig, type ProviderNotificationType, type ProviderReactivatedEventData, type ProviderResponse, type ProviderSchedule, type ProviderScheduleCreatedEventData, type ProviderScheduleDeletedEventData, type ProviderScheduleResponse, type ProviderScheduleUpdatedEventData, type ProviderSchedulesResponse, type ProviderUpdatedEventData, type ProvidersResponse, type PublicAppointment, type PublicAppointmentResponse, type PublicBookingIntent, type PublicBookingIntentResponse, type PublicCancellationReason, type PublicCancellationReasonsResponse, type PublicServiceEarliestSlotResponse, type PublicServiceSlotsResponse, type QueryParams, type RecurrenceRule, type RequestBody, type RescheduleAppointmentRequest, type RescheduleEvent, type ReschedulePublicAppointmentRequest, type ReschedulingPolicy, type Role, type RolesResponse, type Service, type ServiceCreatedEventData, type ServiceDeletedEventData, type ServiceForm, type ServiceFormResponse, type ServiceFormsResponse, type ServiceProvider, type ServiceProviderCreatedEventData, type ServiceProviderDeletedEventData, type ServiceProviderResponse, type ServiceProvidersResponse, type ServiceResponse, type ServiceSlotResponse, type ServiceUpdatedEventData, type ServicesResponse, type Slot, type SlotRule, type SortServiceFormsRequest, type SubmissionRequirement, type UnauthorizedResponse, type UpdateAccountRequest, type UpdateAccountUserRequest, type UpdateBlockRequest, type UpdateBookingIntentRequest, type UpdateCancellationReasonRequest, type UpdateClientFieldRequest, type UpdateClientRequest, type UpdateConnectedAccountRequest, type UpdateFormRequest, type UpdateProviderRequest, type UpdateProviderScheduleRequest, type UpdatePublicBookingIntentRequest, type UpdateServiceRequest, type User, type WeeklyRule, type ZonedDateTime, abandonBookingIntent, abandonPublicBookingIntent, attachServiceForm, cancelAppointment, cancelPublicAppointment, completeBookingIntent, completePublicBookingIntent, confirmAppointment, createAccount, createAccountUser, createAppointment, createBlock, createBookingIntent, createCancellationReason, createClient, createClientField, createDashboardSession, createFetchClient, createForm, createProvider, createProviderSchedule, createPublicAppointment, createPublicBookingIntent, createService, createServiceProvider, deactivateProvider, deleteBlock, deleteCancellationReason, deleteClient, deleteClientField, deleteConnectedAccount, deleteForm, deleteProviderSchedule, deleteService, deleteServiceProvider, detachServiceForm, getAccountById, getAppointment, getBlock, getBookingIntent, getCancellationReason, getClient, getClientField, getConnectedAccount, getCurrentAccount, getCurrentAccountUser, getCurrentPlatform, getEarliestPublicServiceSlot, getForm, getProvider, getProviderSchedule, getPublicAppointment, getPublicBookingIntent, getService, listAccountUsers, listAccounts, listAppointments, listBlocks, listBookingIntents, listCancellationReasons, listClientFields, listClients, listConnectedAccounts, listForms, listProviderSchedules, listProviders, listPublicCancellationReasons, listPublicServiceSlots, listRoles, listServiceForms, listServiceProviders, listServiceSlots, listServices, type paths, rescheduleAppointment, reschedulePublicAppointment, sortServiceForms, updateAccount, updateAccountUser, updateBlock, updateBookingIntent, updateCancellationReason, updateClient, updateClientField, updateConnectedAccount, updateForm, updateProvider, updateProviderSchedule, updatePublicBookingIntent, updateService };