@savvycal/appointments-core 1.2.0 → 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.cts CHANGED
@@ -2206,6 +2206,20 @@ interface components {
2206
2206
  * "object": "provider",
2207
2207
  * "updated_at": "2017-09-13T10:11:12Z"
2208
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
+ * },
2209
2223
  * "service": {
2210
2224
  * "appointment_type": "in_person",
2211
2225
  * "booking_policy": {
@@ -2298,7 +2312,19 @@ interface components {
2298
2312
  * },
2299
2313
  * "status": "slot_selected",
2300
2314
  * "submissions": [],
2301
- * "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
+ * }
2302
2328
  * },
2303
2329
  * "type": "booking_intent.completed"
2304
2330
  * }
@@ -2431,8 +2457,8 @@ interface components {
2431
2457
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
2432
2458
  */
2433
2459
  end_at?: string | null;
2434
- /** @description Fields to lock from public API updates. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. */
2435
- 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;
2436
2462
  /** @description Custom metadata key-value pairs. */
2437
2463
  metadata?: {
2438
2464
  [key: string]: unknown;
@@ -2513,6 +2539,20 @@ interface components {
2513
2539
  * "object": "provider",
2514
2540
  * "updated_at": "2017-09-13T10:11:12Z"
2515
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
+ * },
2516
2556
  * "service": {
2517
2557
  * "appointment_type": "in_person",
2518
2558
  * "booking_policy": {
@@ -2605,7 +2645,19 @@ interface components {
2605
2645
  * },
2606
2646
  * "status": "slot_selected",
2607
2647
  * "submissions": [],
2608
- * "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
+ * }
2609
2661
  * },
2610
2662
  * "type": "booking_intent.abandoned"
2611
2663
  * }
@@ -2788,6 +2840,41 @@ interface components {
2788
2840
  */
2789
2841
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
2790
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
+ };
2791
2878
  /**
2792
2879
  * ServiceProvider
2793
2880
  * @description A service provider
@@ -3026,6 +3113,20 @@ interface components {
3026
3113
  * "object": "provider",
3027
3114
  * "updated_at": "2017-09-13T10:11:12Z"
3028
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
+ * },
3029
3130
  * "service": {
3030
3131
  * "appointment_type": "in_person",
3031
3132
  * "booking_policy": {
@@ -3118,7 +3219,19 @@ interface components {
3118
3219
  * },
3119
3220
  * "status": "slot_selected",
3120
3221
  * "submissions": [],
3121
- * "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
+ * }
3122
3235
  * },
3123
3236
  * "type": "booking_intent.updated"
3124
3237
  * }
@@ -3449,6 +3562,20 @@ interface components {
3449
3562
  * "object": "provider",
3450
3563
  * "updated_at": "2017-09-13T10:11:12Z"
3451
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
+ * },
3452
3579
  * "service": {
3453
3580
  * "appointment_type": "in_person",
3454
3581
  * "booking_policy": {
@@ -3541,7 +3668,19 @@ interface components {
3541
3668
  * },
3542
3669
  * "status": "slot_selected",
3543
3670
  * "submissions": [],
3544
- * "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
+ * }
3545
3684
  * }
3546
3685
  * ],
3547
3686
  * "meta": {
@@ -3789,6 +3928,20 @@ interface components {
3789
3928
  * "object": "provider",
3790
3929
  * "updated_at": "2017-09-13T10:11:12Z"
3791
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
+ * },
3792
3945
  * "service": {
3793
3946
  * "appointment_type": "in_person",
3794
3947
  * "booking_policy": {
@@ -3881,7 +4034,19 @@ interface components {
3881
4034
  * },
3882
4035
  * "status": "slot_selected",
3883
4036
  * "submissions": [],
3884
- * "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
+ * }
3885
4050
  * },
3886
4051
  * "type": "booking_intent.created"
3887
4052
  * }
@@ -3930,7 +4095,7 @@ interface components {
3930
4095
  * IntentSubmissionInput
3931
4096
  * @description A form submission entry containing a form ID and response data.
3932
4097
  * @example {
3933
- * "form_id": "frm_abc123def456abc123def456",
4098
+ * "form_id": "frm_abc123def456",
3934
4099
  * "responses": {
3935
4100
  * "color": [
3936
4101
  * "opt_abc"
@@ -5275,8 +5440,8 @@ interface components {
5275
5440
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
5276
5441
  */
5277
5442
  end_at?: string | null;
5278
- /** @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. */
5279
- 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;
5280
5445
  /** @description Custom metadata key-value pairs. Replaces existing metadata entirely. */
5281
5446
  metadata?: {
5282
5447
  [key: string]: unknown;
@@ -7204,6 +7369,20 @@ interface components {
7204
7369
  * "id": "bi_abc123def456abc123def456",
7205
7370
  * "locked_fields": [],
7206
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
+ * },
7207
7386
  * "start_at": {
7208
7387
  * "local": "2026-02-23T10:00:00-05:00",
7209
7388
  * "object": "zoned_date_time",
@@ -7211,7 +7390,19 @@ interface components {
7211
7390
  * "unix_ts": 1771945200,
7212
7391
  * "utc": "2026-02-23T15:00:00Z"
7213
7392
  * },
7214
- * "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
+ * }
7215
7406
  * }
7216
7407
  */
7217
7408
  PublicBookingIntent: {
@@ -7228,20 +7419,22 @@ interface components {
7228
7419
  hold_until?: string | null;
7229
7420
  /** @description The booking intent ID */
7230
7421
  id: string;
7231
- /** @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. */
7232
- 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")[];
7233
7424
  /**
7234
7425
  * @description The object type
7235
7426
  * @enum {string}
7236
7427
  */
7237
7428
  object: "public_booking_intent";
7429
+ requirements?: components["schemas"]["BookingIntentRequirements"];
7238
7430
  /** @description The start time of the selected slot */
7239
7431
  start_at?: components["schemas"]["ZonedDateTime"] | null;
7240
7432
  /**
7241
- * @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).
7242
7434
  * @enum {string}
7243
7435
  */
7244
7436
  status: "pending" | "slot_selected" | "completed" | "abandoned";
7437
+ workflow?: components["schemas"]["BookingIntentWorkflow"];
7245
7438
  };
7246
7439
  /**
7247
7440
  * ServiceForm
@@ -7723,6 +7916,20 @@ interface components {
7723
7916
  */
7724
7917
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
7725
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
+ };
7726
7933
  /**
7727
7934
  * PublicBookingIntentResponse
7728
7935
  * @description Response schema for a single booking intent via a public interface.
@@ -7741,6 +7948,20 @@ interface components {
7741
7948
  * "id": "bi_abc123def456abc123def456",
7742
7949
  * "locked_fields": [],
7743
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
+ * },
7744
7965
  * "start_at": {
7745
7966
  * "local": "2026-02-23T10:00:00-05:00",
7746
7967
  * "object": "zoned_date_time",
@@ -7748,7 +7969,19 @@ interface components {
7748
7969
  * "unix_ts": 1771945200,
7749
7970
  * "utc": "2026-02-23T15:00:00Z"
7750
7971
  * },
7751
- * "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
+ * }
7752
7985
  * }
7753
7986
  * }
7754
7987
  */
@@ -8396,6 +8629,20 @@ interface components {
8396
8629
  * "object": "provider",
8397
8630
  * "updated_at": "2017-09-13T10:11:12Z"
8398
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
+ * },
8399
8646
  * "service": {
8400
8647
  * "appointment_type": "in_person",
8401
8648
  * "booking_policy": {
@@ -8488,7 +8735,19 @@ interface components {
8488
8735
  * },
8489
8736
  * "status": "slot_selected",
8490
8737
  * "submissions": [],
8491
- * "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
+ * }
8492
8751
  * }
8493
8752
  * }
8494
8753
  */
@@ -9388,6 +9647,41 @@ interface components {
9388
9647
  reschedule: string[];
9389
9648
  };
9390
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
+ };
9391
9685
  /**
9392
9686
  * ProviderDeactivatedEventData
9393
9687
  * @description This is an object representing data for the provider deactivated event.
@@ -9828,6 +10122,20 @@ interface components {
9828
10122
  * "object": "provider",
9829
10123
  * "updated_at": "2017-09-13T10:11:12Z"
9830
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
+ * },
9831
10139
  * "service": {
9832
10140
  * "appointment_type": "in_person",
9833
10141
  * "booking_policy": {
@@ -9920,7 +10228,19 @@ interface components {
9920
10228
  * },
9921
10229
  * "status": "slot_selected",
9922
10230
  * "submissions": [],
9923
- * "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
+ * }
9924
10244
  * }
9925
10245
  */
9926
10246
  BookingIntent: {
@@ -9965,8 +10285,8 @@ interface components {
9965
10285
  hold_until?: string | null;
9966
10286
  /** @description The booking intent ID */
9967
10287
  id: string;
9968
- /** @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. */
9969
- 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")[];
9970
10290
  /** @description Custom metadata key-value pairs */
9971
10291
  metadata?: {
9972
10292
  [key: string]: unknown;
@@ -9978,6 +10298,8 @@ interface components {
9978
10298
  object: "booking_intent";
9979
10299
  /** @description The assigned provider */
9980
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;
9981
10303
  /** @description The selected service */
9982
10304
  service?: components["schemas"]["Service"] | null;
9983
10305
  /** @description Whether the slot has been prevalidated. When true, public completion skips slot validation. */
@@ -9985,7 +10307,7 @@ interface components {
9985
10307
  /** @description The start time of the selected slot */
9986
10308
  start_at?: components["schemas"]["ZonedDateTime"] | null;
9987
10309
  /**
9988
- * @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).
9989
10311
  * @enum {string}
9990
10312
  */
9991
10313
  status: "pending" | "slot_selected" | "completed" | "abandoned";
@@ -9996,6 +10318,8 @@ interface components {
9996
10318
  * @description When the intent was last updated
9997
10319
  */
9998
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;
9999
10323
  };
10000
10324
  /**
10001
10325
  * CreateServiceRequest
@@ -15071,9 +15395,11 @@ type BookingIntentAbandonedEventData = Schemas["BookingIntentAbandonedEventData"
15071
15395
  type BookingIntentBookingPolicy = Schemas["BookingIntentBookingPolicy"];
15072
15396
  type BookingIntentCompletedEventData = Schemas["BookingIntentCompletedEventData"];
15073
15397
  type BookingIntentCreatedEventData = Schemas["BookingIntentCreatedEventData"];
15398
+ type BookingIntentRequirements = Schemas["BookingIntentRequirements"];
15074
15399
  type BookingIntentResponse = Schemas["BookingIntentResponse"];
15075
15400
  type BookingIntentsResponse = Schemas["BookingIntentsResponse"];
15076
15401
  type BookingIntentUpdatedEventData = Schemas["BookingIntentUpdatedEventData"];
15402
+ type BookingIntentWorkflow = Schemas["BookingIntentWorkflow"];
15077
15403
  type BookingPolicy = Schemas["BookingPolicy"];
15078
15404
  type CancelAppointmentRequest = Schemas["CancelAppointmentRequest"];
15079
15405
  type CancellationEvent = Schemas["CancellationEvent"];
@@ -15191,6 +15517,7 @@ type ServiceUpdatedEventData = Schemas["ServiceUpdatedEventData"];
15191
15517
  type Slot = Schemas["Slot"];
15192
15518
  type SlotRule = Schemas["SlotRule"];
15193
15519
  type SortServiceFormsRequest = Schemas["SortServiceFormsRequest"];
15520
+ type SubmissionRequirement = Schemas["SubmissionRequirement"];
15194
15521
  type UnauthorizedResponse = Schemas["UnauthorizedResponse"];
15195
15522
  type UpdateAccountRequest = Schemas["UpdateAccountRequest"];
15196
15523
  type UpdateAccountUserRequest = Schemas["UpdateAccountUserRequest"];
@@ -16042,7 +16369,7 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
16042
16369
  } | null;
16043
16370
  client_id?: string | null;
16044
16371
  end_at?: string | null;
16045
- locked_fields?: string[] | null;
16372
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
16046
16373
  metadata?: {
16047
16374
  [key: string]: unknown;
16048
16375
  } | null;
@@ -19594,7 +19921,7 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
19594
19921
  } | null;
19595
19922
  client_id?: string | null;
19596
19923
  end_at?: string | null;
19597
- locked_fields?: string[] | null;
19924
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
19598
19925
  metadata?: {
19599
19926
  [key: string]: unknown;
19600
19927
  } | null;
@@ -20186,4 +20513,4 @@ declare function updateService(client: FetchClient, path: PathParams<"/v1/servic
20186
20513
  };
20187
20514
  }, `${string}/${string}`>>;
20188
20515
 
20189
- 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 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 };
package/dist/index.d.ts CHANGED
@@ -2206,6 +2206,20 @@ interface components {
2206
2206
  * "object": "provider",
2207
2207
  * "updated_at": "2017-09-13T10:11:12Z"
2208
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
+ * },
2209
2223
  * "service": {
2210
2224
  * "appointment_type": "in_person",
2211
2225
  * "booking_policy": {
@@ -2298,7 +2312,19 @@ interface components {
2298
2312
  * },
2299
2313
  * "status": "slot_selected",
2300
2314
  * "submissions": [],
2301
- * "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
+ * }
2302
2328
  * },
2303
2329
  * "type": "booking_intent.completed"
2304
2330
  * }
@@ -2431,8 +2457,8 @@ interface components {
2431
2457
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
2432
2458
  */
2433
2459
  end_at?: string | null;
2434
- /** @description Fields to lock from public API updates. Possible values: service_id, provider_id, start_at, end_at, time_zone, client_data, submissions. */
2435
- 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;
2436
2462
  /** @description Custom metadata key-value pairs. */
2437
2463
  metadata?: {
2438
2464
  [key: string]: unknown;
@@ -2513,6 +2539,20 @@ interface components {
2513
2539
  * "object": "provider",
2514
2540
  * "updated_at": "2017-09-13T10:11:12Z"
2515
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
+ * },
2516
2556
  * "service": {
2517
2557
  * "appointment_type": "in_person",
2518
2558
  * "booking_policy": {
@@ -2605,7 +2645,19 @@ interface components {
2605
2645
  * },
2606
2646
  * "status": "slot_selected",
2607
2647
  * "submissions": [],
2608
- * "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
+ * }
2609
2661
  * },
2610
2662
  * "type": "booking_intent.abandoned"
2611
2663
  * }
@@ -2788,6 +2840,41 @@ interface components {
2788
2840
  */
2789
2841
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
2790
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
+ };
2791
2878
  /**
2792
2879
  * ServiceProvider
2793
2880
  * @description A service provider
@@ -3026,6 +3113,20 @@ interface components {
3026
3113
  * "object": "provider",
3027
3114
  * "updated_at": "2017-09-13T10:11:12Z"
3028
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
+ * },
3029
3130
  * "service": {
3030
3131
  * "appointment_type": "in_person",
3031
3132
  * "booking_policy": {
@@ -3118,7 +3219,19 @@ interface components {
3118
3219
  * },
3119
3220
  * "status": "slot_selected",
3120
3221
  * "submissions": [],
3121
- * "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
+ * }
3122
3235
  * },
3123
3236
  * "type": "booking_intent.updated"
3124
3237
  * }
@@ -3449,6 +3562,20 @@ interface components {
3449
3562
  * "object": "provider",
3450
3563
  * "updated_at": "2017-09-13T10:11:12Z"
3451
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
+ * },
3452
3579
  * "service": {
3453
3580
  * "appointment_type": "in_person",
3454
3581
  * "booking_policy": {
@@ -3541,7 +3668,19 @@ interface components {
3541
3668
  * },
3542
3669
  * "status": "slot_selected",
3543
3670
  * "submissions": [],
3544
- * "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
+ * }
3545
3684
  * }
3546
3685
  * ],
3547
3686
  * "meta": {
@@ -3789,6 +3928,20 @@ interface components {
3789
3928
  * "object": "provider",
3790
3929
  * "updated_at": "2017-09-13T10:11:12Z"
3791
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
+ * },
3792
3945
  * "service": {
3793
3946
  * "appointment_type": "in_person",
3794
3947
  * "booking_policy": {
@@ -3881,7 +4034,19 @@ interface components {
3881
4034
  * },
3882
4035
  * "status": "slot_selected",
3883
4036
  * "submissions": [],
3884
- * "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
+ * }
3885
4050
  * },
3886
4051
  * "type": "booking_intent.created"
3887
4052
  * }
@@ -3930,7 +4095,7 @@ interface components {
3930
4095
  * IntentSubmissionInput
3931
4096
  * @description A form submission entry containing a form ID and response data.
3932
4097
  * @example {
3933
- * "form_id": "frm_abc123def456abc123def456",
4098
+ * "form_id": "frm_abc123def456",
3934
4099
  * "responses": {
3935
4100
  * "color": [
3936
4101
  * "opt_abc"
@@ -5275,8 +5440,8 @@ interface components {
5275
5440
  * @description The end time of the slot as an ISO-8601 datetime string with a timezone offset.
5276
5441
  */
5277
5442
  end_at?: string | null;
5278
- /** @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. */
5279
- 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;
5280
5445
  /** @description Custom metadata key-value pairs. Replaces existing metadata entirely. */
5281
5446
  metadata?: {
5282
5447
  [key: string]: unknown;
@@ -7204,6 +7369,20 @@ interface components {
7204
7369
  * "id": "bi_abc123def456abc123def456",
7205
7370
  * "locked_fields": [],
7206
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
+ * },
7207
7386
  * "start_at": {
7208
7387
  * "local": "2026-02-23T10:00:00-05:00",
7209
7388
  * "object": "zoned_date_time",
@@ -7211,7 +7390,19 @@ interface components {
7211
7390
  * "unix_ts": 1771945200,
7212
7391
  * "utc": "2026-02-23T15:00:00Z"
7213
7392
  * },
7214
- * "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
+ * }
7215
7406
  * }
7216
7407
  */
7217
7408
  PublicBookingIntent: {
@@ -7228,20 +7419,22 @@ interface components {
7228
7419
  hold_until?: string | null;
7229
7420
  /** @description The booking intent ID */
7230
7421
  id: string;
7231
- /** @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. */
7232
- 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")[];
7233
7424
  /**
7234
7425
  * @description The object type
7235
7426
  * @enum {string}
7236
7427
  */
7237
7428
  object: "public_booking_intent";
7429
+ requirements?: components["schemas"]["BookingIntentRequirements"];
7238
7430
  /** @description The start time of the selected slot */
7239
7431
  start_at?: components["schemas"]["ZonedDateTime"] | null;
7240
7432
  /**
7241
- * @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).
7242
7434
  * @enum {string}
7243
7435
  */
7244
7436
  status: "pending" | "slot_selected" | "completed" | "abandoned";
7437
+ workflow?: components["schemas"]["BookingIntentWorkflow"];
7245
7438
  };
7246
7439
  /**
7247
7440
  * ServiceForm
@@ -7723,6 +7916,20 @@ interface components {
7723
7916
  */
7724
7917
  type: "short_text" | "long_text" | "email" | "phone" | "boolean" | "radio" | "select" | "checkbox";
7725
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
+ };
7726
7933
  /**
7727
7934
  * PublicBookingIntentResponse
7728
7935
  * @description Response schema for a single booking intent via a public interface.
@@ -7741,6 +7948,20 @@ interface components {
7741
7948
  * "id": "bi_abc123def456abc123def456",
7742
7949
  * "locked_fields": [],
7743
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
+ * },
7744
7965
  * "start_at": {
7745
7966
  * "local": "2026-02-23T10:00:00-05:00",
7746
7967
  * "object": "zoned_date_time",
@@ -7748,7 +7969,19 @@ interface components {
7748
7969
  * "unix_ts": 1771945200,
7749
7970
  * "utc": "2026-02-23T15:00:00Z"
7750
7971
  * },
7751
- * "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
+ * }
7752
7985
  * }
7753
7986
  * }
7754
7987
  */
@@ -8396,6 +8629,20 @@ interface components {
8396
8629
  * "object": "provider",
8397
8630
  * "updated_at": "2017-09-13T10:11:12Z"
8398
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
+ * },
8399
8646
  * "service": {
8400
8647
  * "appointment_type": "in_person",
8401
8648
  * "booking_policy": {
@@ -8488,7 +8735,19 @@ interface components {
8488
8735
  * },
8489
8736
  * "status": "slot_selected",
8490
8737
  * "submissions": [],
8491
- * "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
+ * }
8492
8751
  * }
8493
8752
  * }
8494
8753
  */
@@ -9388,6 +9647,41 @@ interface components {
9388
9647
  reschedule: string[];
9389
9648
  };
9390
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
+ };
9391
9685
  /**
9392
9686
  * ProviderDeactivatedEventData
9393
9687
  * @description This is an object representing data for the provider deactivated event.
@@ -9828,6 +10122,20 @@ interface components {
9828
10122
  * "object": "provider",
9829
10123
  * "updated_at": "2017-09-13T10:11:12Z"
9830
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
+ * },
9831
10139
  * "service": {
9832
10140
  * "appointment_type": "in_person",
9833
10141
  * "booking_policy": {
@@ -9920,7 +10228,19 @@ interface components {
9920
10228
  * },
9921
10229
  * "status": "slot_selected",
9922
10230
  * "submissions": [],
9923
- * "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
+ * }
9924
10244
  * }
9925
10245
  */
9926
10246
  BookingIntent: {
@@ -9965,8 +10285,8 @@ interface components {
9965
10285
  hold_until?: string | null;
9966
10286
  /** @description The booking intent ID */
9967
10287
  id: string;
9968
- /** @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. */
9969
- 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")[];
9970
10290
  /** @description Custom metadata key-value pairs */
9971
10291
  metadata?: {
9972
10292
  [key: string]: unknown;
@@ -9978,6 +10298,8 @@ interface components {
9978
10298
  object: "booking_intent";
9979
10299
  /** @description The assigned provider */
9980
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;
9981
10303
  /** @description The selected service */
9982
10304
  service?: components["schemas"]["Service"] | null;
9983
10305
  /** @description Whether the slot has been prevalidated. When true, public completion skips slot validation. */
@@ -9985,7 +10307,7 @@ interface components {
9985
10307
  /** @description The start time of the selected slot */
9986
10308
  start_at?: components["schemas"]["ZonedDateTime"] | null;
9987
10309
  /**
9988
- * @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).
9989
10311
  * @enum {string}
9990
10312
  */
9991
10313
  status: "pending" | "slot_selected" | "completed" | "abandoned";
@@ -9996,6 +10318,8 @@ interface components {
9996
10318
  * @description When the intent was last updated
9997
10319
  */
9998
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;
9999
10323
  };
10000
10324
  /**
10001
10325
  * CreateServiceRequest
@@ -15071,9 +15395,11 @@ type BookingIntentAbandonedEventData = Schemas["BookingIntentAbandonedEventData"
15071
15395
  type BookingIntentBookingPolicy = Schemas["BookingIntentBookingPolicy"];
15072
15396
  type BookingIntentCompletedEventData = Schemas["BookingIntentCompletedEventData"];
15073
15397
  type BookingIntentCreatedEventData = Schemas["BookingIntentCreatedEventData"];
15398
+ type BookingIntentRequirements = Schemas["BookingIntentRequirements"];
15074
15399
  type BookingIntentResponse = Schemas["BookingIntentResponse"];
15075
15400
  type BookingIntentsResponse = Schemas["BookingIntentsResponse"];
15076
15401
  type BookingIntentUpdatedEventData = Schemas["BookingIntentUpdatedEventData"];
15402
+ type BookingIntentWorkflow = Schemas["BookingIntentWorkflow"];
15077
15403
  type BookingPolicy = Schemas["BookingPolicy"];
15078
15404
  type CancelAppointmentRequest = Schemas["CancelAppointmentRequest"];
15079
15405
  type CancellationEvent = Schemas["CancellationEvent"];
@@ -15191,6 +15517,7 @@ type ServiceUpdatedEventData = Schemas["ServiceUpdatedEventData"];
15191
15517
  type Slot = Schemas["Slot"];
15192
15518
  type SlotRule = Schemas["SlotRule"];
15193
15519
  type SortServiceFormsRequest = Schemas["SortServiceFormsRequest"];
15520
+ type SubmissionRequirement = Schemas["SubmissionRequirement"];
15194
15521
  type UnauthorizedResponse = Schemas["UnauthorizedResponse"];
15195
15522
  type UpdateAccountRequest = Schemas["UpdateAccountRequest"];
15196
15523
  type UpdateAccountUserRequest = Schemas["UpdateAccountUserRequest"];
@@ -16042,7 +16369,7 @@ declare function createBookingIntent(client: FetchClient, body: RequestBody<"/v1
16042
16369
  } | null;
16043
16370
  client_id?: string | null;
16044
16371
  end_at?: string | null;
16045
- locked_fields?: string[] | null;
16372
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
16046
16373
  metadata?: {
16047
16374
  [key: string]: unknown;
16048
16375
  } | null;
@@ -19594,7 +19921,7 @@ declare function updateBookingIntent(client: FetchClient, path: PathParams<"/v1/
19594
19921
  } | null;
19595
19922
  client_id?: string | null;
19596
19923
  end_at?: string | null;
19597
- locked_fields?: string[] | null;
19924
+ locked_fields?: ("service_id" | "provider_id" | "start_at" | "end_at" | "time_zone" | "client_data" | "submissions")[] | null;
19598
19925
  metadata?: {
19599
19926
  [key: string]: unknown;
19600
19927
  } | null;
@@ -20186,4 +20513,4 @@ declare function updateService(client: FetchClient, path: PathParams<"/v1/servic
20186
20513
  };
20187
20514
  }, `${string}/${string}`>>;
20188
20515
 
20189
- 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 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvycal/appointments-core",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "description": "JavaScript/TypeScript client library for the SavvyCal Appointments API",
6
6
  "main": "./dist/index.cjs",