@playaos/api-client 0.13.0 → 0.15.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
@@ -55,6 +55,8 @@ interface Member {
55
55
  emergencyContactRelationship?: string | null;
56
56
  emergencyContactPhone?: string | null;
57
57
  yearJoined?: number | null;
58
+ adminRoles?: string[] | null;
59
+ isDeveloper?: boolean | null;
58
60
  }
59
61
  interface Application {
60
62
  id: string;
@@ -391,7 +393,16 @@ interface ApplicationEvent {
391
393
  applicationId: string;
392
394
  actorId: string | null;
393
395
  actorName: string | null;
394
- type: "status_change" | "note_added" | "tags_updated" | "score_set";
396
+ /**
397
+ * Mirrors `APPLICATION_AUDIT_ACTIONS` in `@playa-os/portal-data`, except that
398
+ * the server's `status_changed` is surfaced as `status_change` for backwards
399
+ * compatibility with the original embed shape. `tags_updated` and `score_set`
400
+ * predate that vocabulary and are kept so existing consumers still compile.
401
+ *
402
+ * Widening the server list without widening this union lets a value escape
403
+ * the declared type through the cast in `client.ts` — see PLA-1199.
404
+ */
405
+ type: "status_change" | "note_added" | "tags_updated" | "score_set" | "message_sent" | "message_received" | "approved" | "rejected" | "waitlisted" | "interview_invite_sent" | "interview_scheduled_manually" | "interview_completed" | "interviewer_assigned" | "red_flag_added";
395
406
  timestamp: string;
396
407
  fromStatus?: string | null;
397
408
  toStatus?: string;
@@ -408,6 +419,11 @@ interface AvailabilityWindow {
408
419
  interface SetAvailabilityInput {
409
420
  windows: AvailabilityWindow[];
410
421
  }
422
+ /** Response from GET /scheduling/availability/{id}. */
423
+ interface GetAvailabilityResponse {
424
+ windows: AvailabilityWindow[];
425
+ }
426
+ /** Response from PUT /scheduling/availability/{id}. */
411
427
  interface SetAvailabilityResponse {
412
428
  windows: {
413
429
  count: number;
@@ -457,6 +473,209 @@ interface SelectCalendarInput {
457
473
  calendarId: string;
458
474
  calendarName?: string;
459
475
  }
476
+ /** Per-member status for one packing item. Mirrors `PACKING_ITEM_STATUSES`. */
477
+ type PackingItemStatus = "have" | "need" | "nope" | "packed" | "camp_has";
478
+ /** Which layer a resolved row came from (ADR-071). */
479
+ type PackingLayer = "global" | "camp" | "personal";
480
+ /**
481
+ * One row of the resolved list. Identity is `slug`, never a row uuid — the
482
+ * curated base is regenerated wholesale and uuids do not survive it (ADR-071).
483
+ */
484
+ interface PackingItem {
485
+ slug: string;
486
+ category: string;
487
+ name: string;
488
+ notes: string | null;
489
+ shelters: string[];
490
+ qty: number | null;
491
+ unit: string | null;
492
+ source: string | null;
493
+ contested: string | null;
494
+ sortOrder: number;
495
+ /** Base-layer rows only — which packing-template source this came from. */
496
+ sourceList?: string;
497
+ layer: PackingLayer;
498
+ status: string | null;
499
+ /** The member's own annotation. Distinct from the item's `notes`. */
500
+ memberNotes: string | null;
501
+ containerId: string | null;
502
+ containerName: string | null;
503
+ }
504
+ interface PackingListResponse {
505
+ items: PackingItem[];
506
+ year: number;
507
+ }
508
+ /** A row in the member's personal layer. These are user-owned, so keyed by uuid. */
509
+ interface PackingPersonalItem {
510
+ id: string;
511
+ catalogItemId: string | null;
512
+ name: string;
513
+ category: string;
514
+ tags: string[];
515
+ qty: number;
516
+ unit: string | null;
517
+ status: string;
518
+ containerId: string | null;
519
+ notes: string | null;
520
+ }
521
+ /**
522
+ * Camp packing-layer row (PLA-1204). Published identity is `slug`
523
+ * (`overrides_slug`, or `camp:<uuid>` when standalone) — not the row uuid alone.
524
+ */
525
+ interface PackingCampItem {
526
+ slug: string;
527
+ id: string;
528
+ categoryId: string;
529
+ categoryName: string;
530
+ name: string;
531
+ notes: string | null;
532
+ sortOrder: number;
533
+ overridesSlug: string | null;
534
+ }
535
+ interface UpsertPackingCampItemInput {
536
+ slug: string;
537
+ name: string;
538
+ category: string;
539
+ notes?: string | null;
540
+ sortOrder?: number;
541
+ }
542
+ /** Active-year allocation summary. Year is always the org's active camp year. */
543
+ interface SapAllocation {
544
+ year: number;
545
+ totalAllocated: number;
546
+ notes: string | null;
547
+ totalAssigned: number;
548
+ }
549
+ interface UpdateSapAllocationInput {
550
+ totalAllocated: number;
551
+ notes?: string | null;
552
+ }
553
+ interface SapDayAllocation {
554
+ id: string;
555
+ year: number;
556
+ accessDate: string;
557
+ slotsAvailable: number;
558
+ notes: string | null;
559
+ }
560
+ interface UpsertSapDayAllocationInput {
561
+ accessDate: string;
562
+ slotsAvailable: number;
563
+ notes?: string | null;
564
+ }
565
+ interface SapAssignment {
566
+ id: string;
567
+ userId: string;
568
+ year: number;
569
+ sapNumber: string | null;
570
+ vehicleDescription: string | null;
571
+ licensePlate: string | null;
572
+ arrivalDate: string | null;
573
+ notes: string | null;
574
+ }
575
+ interface CreateSapAssignmentInput {
576
+ userId: string;
577
+ sapNumber?: string | null;
578
+ vehicleDescription?: string | null;
579
+ licensePlate?: string | null;
580
+ arrivalDate?: string | null;
581
+ notes?: string | null;
582
+ }
583
+ interface UpdateSapAssignmentInput {
584
+ assignmentId: string;
585
+ sapNumber?: string | null;
586
+ vehicleDescription?: string | null;
587
+ licensePlate?: string | null;
588
+ arrivalDate?: string | null;
589
+ notes?: string | null;
590
+ }
591
+ /** How the rental reaches the member. The server defaults to `camp_delivery`. */
592
+ type BikeRentalDeliveryMode = "individual_pickup" | "camp_delivery";
593
+ type BikeRentalFramePreference = "standard" | "step-through";
594
+ interface BikeRentalCatalogItem {
595
+ /** Customer-facing option label. Send it back as `model` when requesting a bike. */
596
+ model: string;
597
+ /** DustJunkie bike_type behind the option. */
598
+ bikeType: string;
599
+ framePreference: BikeRentalFramePreference;
600
+ /** Per-rental price. */
601
+ price: number;
602
+ /** Refundable security deposit for this bike type. */
603
+ deposit: number;
604
+ /** Transport fee for the requested delivery mode; 0 for pickup. */
605
+ transportFee: number;
606
+ /** Display estimate: price + deposit + transportFee. DustJunkie sets the amount it actually charges. */
607
+ estimatedTotal: number;
608
+ /** Bikes of this type tracked in the delivery pool, in any status. */
609
+ totalCount: number;
610
+ /** Bikes of this type ready to ride; 0 means sold out. */
611
+ ready: number;
612
+ }
613
+ interface BikeRentalCatalogResponse {
614
+ items: BikeRentalCatalogItem[];
615
+ }
616
+ interface BikeRentalWaiver {
617
+ /** Waiver version recorded with every request. */
618
+ version: string;
619
+ /** Full rental agreement and liability waiver. */
620
+ text: string;
621
+ /** Every box must be accepted to submit a request. */
622
+ checkboxes: string[];
623
+ }
624
+ /** Body of `POST /bike-rentals/requests`. The request is always for the acting member. */
625
+ interface BikeRentalRequestInput {
626
+ /** A `model` from `bikeRentals.catalog()`. */
627
+ model: string;
628
+ firstName: string;
629
+ lastName: string;
630
+ /** Must contain at least 10 digits. */
631
+ phone: string;
632
+ billingStreet: string;
633
+ billingCity: string;
634
+ billingState: string;
635
+ billingPostalCode: string;
636
+ billingCountry: string;
637
+ /** The member accepted the waiver and all of its checkboxes. */
638
+ agreementConfirmed: true;
639
+ }
640
+ interface BikeRentalRequestResult {
641
+ /** DustJunkie's id for the pending request. */
642
+ requestId: string | null;
643
+ status: string | null;
644
+ /** True when this matched an earlier request within the short dedupe window (ADR-091). */
645
+ duplicate?: boolean;
646
+ }
647
+ interface BikeRentalReservation {
648
+ id: string;
649
+ name: string;
650
+ email: string | null;
651
+ reservationType: string | null;
652
+ /** Bike description parsed from DustJunkie's notes. */
653
+ bikeSummary: string | null;
654
+ paymentAmount: number | null;
655
+ paymentStatus: string | null;
656
+ rentalStatus: string | null;
657
+ waiverStatus: string | null;
658
+ depositStatus: string | null;
659
+ deliveryType: string | null;
660
+ reservedAt: string | null;
661
+ }
662
+ interface BikeRentalReservationListResponse {
663
+ items: BikeRentalReservation[];
664
+ }
665
+ interface BikeRentalInterestedMember {
666
+ userId: string;
667
+ name: string | null;
668
+ email: string | null;
669
+ bikeTypePreference: string | null;
670
+ arrivalDate: string | null;
671
+ /** No email on file, so no reservation can ever match. */
672
+ unmatchable: boolean;
673
+ }
674
+ interface BikeRentalInterestedNotReservedResponse {
675
+ /** Active camp year; the calendar year when no camp year is active. */
676
+ year: number;
677
+ items: BikeRentalInterestedMember[];
678
+ }
460
679
  //#endregion
461
680
  //#region src/client.d.ts
462
681
  interface ClientOptions {
@@ -492,6 +711,14 @@ declare class PlayaOSClient {
492
711
  * server that holds one org key and serves many signed-in members.
493
712
  */
494
713
  withMember(memberToken: string): PlayaOSClient;
714
+ /**
715
+ * Admin dual-path (PLA-1203): when the client has a memberToken, call `/api/v1`
716
+ * (org key + X-PlayaOS-Member-Token). Otherwise keep the legacy embed-admin
717
+ * Bearer-JWT path so published consumers without withMember() still work.
718
+ */
719
+ private adminV1OrEmbed;
720
+ /** Resolve admin credential: memberToken clients skip accessToken; embed path requires it. */
721
+ private adminAccess;
495
722
  readonly members: {
496
723
  list: (params?: {
497
724
  role?: MemberRole;
@@ -506,7 +733,7 @@ declare class PlayaOSClient {
506
733
  get: (id: string, opts?: {
507
734
  signal?: AbortSignal;
508
735
  }) => Promise<Member>;
509
- /** Member-self profile update (PLA-700). Requires camp key + member Bearer token. */
736
+ /** Member-self profile update (PLA-700 / PLA-1203). Prefers v1 when memberToken is set. */
510
737
  selfUpdate: (payload: {
511
738
  bio?: string | null;
512
739
  playaName?: string | null;
@@ -524,7 +751,7 @@ declare class PlayaOSClient {
524
751
  }) => Promise<{
525
752
  profileId: string;
526
753
  }>;
527
- /** Member-self shift signup + cancel (PLA-705). Requires camp key + member Bearer. */
754
+ /** Member-self shift signup + cancel (PLA-705 / PLA-1203). Prefers v1 when memberToken is set. */
528
755
  shifts: {
529
756
  signup: (payload: {
530
757
  shiftId: string;
@@ -690,6 +917,51 @@ declare class PlayaOSClient {
690
917
  get: (id: string, opts?: {
691
918
  signal?: AbortSignal;
692
919
  }) => Promise<Bike>;
920
+ /**
921
+ * Cancel an in-house fleet rental owned by the acting member (PLA-1232).
922
+ * Requires a member token. 404 when missing, not owned, or not cancellable.
923
+ */
924
+ cancelRental: (rentalId: string, opts?: {
925
+ signal?: AbortSignal;
926
+ }) => Promise<{
927
+ cancelled: true;
928
+ }>;
929
+ };
930
+ /**
931
+ * DustJunkie bike rentals (PLA-1180), passed through to the vendor. A camp
932
+ * without the integration gets 403; a DustJunkie failure is a 502.
933
+ */
934
+ readonly bikeRentals: {
935
+ /** Bookable options with estimated totals for `delivery` (server default `camp_delivery`). Org key only. */
936
+ catalog: (params?: {
937
+ delivery?: BikeRentalDeliveryMode;
938
+ }, opts?: {
939
+ signal?: AbortSignal;
940
+ }) => Promise<BikeRentalCatalogResponse>;
941
+ /** The rental agreement the member must accept before `requestReservation`. Org key only. */
942
+ waiver: (opts?: {
943
+ signal?: AbortSignal;
944
+ }) => Promise<BikeRentalWaiver>;
945
+ /**
946
+ * Requires a member token. Admins get the whole camp when `memberId` is
947
+ * omitted; any other role gets their own reservations and 403 naming someone else.
948
+ */
949
+ reservations: (params?: {
950
+ memberId?: string;
951
+ }, opts?: {
952
+ signal?: AbortSignal;
953
+ }) => Promise<BikeRentalReservationListResponse>;
954
+ /**
955
+ * Requires a member token; always requests for the acting member. 409 when
956
+ * the model is sold out, 400 when it is unknown or no longer bookable.
957
+ */
958
+ requestReservation: (payload: BikeRentalRequestInput, opts?: {
959
+ signal?: AbortSignal;
960
+ }) => Promise<BikeRentalRequestResult>;
961
+ /** Members who said they want a bike but have no reservation, for the active camp year. Org key only. */
962
+ interestedNotReserved: (opts?: {
963
+ signal?: AbortSignal;
964
+ }) => Promise<BikeRentalInterestedNotReservedResponse>;
693
965
  };
694
966
  readonly tags: {
695
967
  list: (opts?: {
@@ -712,49 +984,186 @@ declare class PlayaOSClient {
712
984
  id: string;
713
985
  }>;
714
986
  };
987
+ /**
988
+ * Camp-scoped packing (PLA-1197). Every method is the acting member's own
989
+ * list — packing has no `memberId` to widen, so these require `memberToken`
990
+ * and 401 on an org key alone.
991
+ */
992
+ readonly packing: {
993
+ /** The resolved list: curated base + camp layer + personal layer (ADR-071). */
994
+ list: (params?: {
995
+ year?: number;
996
+ shelter?: string;
997
+ }, opts?: {
998
+ signal?: AbortSignal;
999
+ }) => Promise<PackingListResponse>;
1000
+ /**
1001
+ * Set the member's status for one item. The slug goes in the body, not the
1002
+ * path: slugs are `${category}/${name}` and contain a `/`.
1003
+ *
1004
+ * Pass the same `shelter` the list was read under — validation filters by
1005
+ * shelter, so an override omitted here rejects shelter-specific items.
1006
+ */
1007
+ setStatus: (payload: {
1008
+ slug: string;
1009
+ status: PackingItemStatus;
1010
+ year?: number;
1011
+ shelter?: string;
1012
+ }, opts?: {
1013
+ signal?: AbortSignal;
1014
+ }) => Promise<{
1015
+ ok: true;
1016
+ }>;
1017
+ personalItems: {
1018
+ list: (params?: {
1019
+ containerId?: string;
1020
+ }, opts?: {
1021
+ signal?: AbortSignal;
1022
+ }) => Promise<{
1023
+ items: PackingPersonalItem[];
1024
+ }>;
1025
+ create: (payload: {
1026
+ name: string;
1027
+ category: string;
1028
+ qty?: number;
1029
+ unit?: string | null;
1030
+ notes?: string | null;
1031
+ }, opts?: {
1032
+ signal?: AbortSignal;
1033
+ }) => Promise<{
1034
+ id: string;
1035
+ }>;
1036
+ /**
1037
+ * Flip the item between `need` and `have`. It does **not** set `packed` —
1038
+ * use `setStatus` for the full vocabulary. 404 if the item is not the
1039
+ * acting member's.
1040
+ */
1041
+ toggle: (id: string, opts?: {
1042
+ signal?: AbortSignal;
1043
+ }) => Promise<{
1044
+ ok: true;
1045
+ }>;
1046
+ /** 404 if the item is not the acting member's. */
1047
+ remove: (id: string, opts?: {
1048
+ signal?: AbortSignal;
1049
+ }) => Promise<{
1050
+ ok: true;
1051
+ }>;
1052
+ };
1053
+ /**
1054
+ * Camp packing layer (PLA-1204). Admin/super_admin only — non-admins get 403.
1055
+ * Identity is the published slug (`overrides_slug` or `camp:<uuid>`).
1056
+ */
1057
+ campItems: {
1058
+ list: (opts?: {
1059
+ signal?: AbortSignal;
1060
+ }) => Promise<{
1061
+ items: PackingCampItem[];
1062
+ }>;
1063
+ upsert: (payload: UpsertPackingCampItemInput, opts?: {
1064
+ signal?: AbortSignal;
1065
+ }) => Promise<PackingCampItem>;
1066
+ };
1067
+ };
1068
+ /**
1069
+ * SAP — Special Access Pass, for early/overnight vehicle arrival (PLA-1202).
1070
+ * Admin/super_admin only; there is no member-facing SAP surface. Year is
1071
+ * always the org's active camp year — the server derives it, callers never
1072
+ * pass one.
1073
+ */
1074
+ readonly sap: {
1075
+ allocation: {
1076
+ get: (opts?: {
1077
+ signal?: AbortSignal;
1078
+ }) => Promise<SapAllocation>;
1079
+ update: (payload: UpdateSapAllocationInput, opts?: {
1080
+ signal?: AbortSignal;
1081
+ }) => Promise<SapAllocation>;
1082
+ };
1083
+ dayAllocations: {
1084
+ list: (opts?: {
1085
+ signal?: AbortSignal;
1086
+ }) => Promise<{
1087
+ items: SapDayAllocation[];
1088
+ }>;
1089
+ /** Upserts by (active year, accessDate); 409 on a cross-org date collision. */
1090
+ upsert: (payload: UpsertSapDayAllocationInput, opts?: {
1091
+ signal?: AbortSignal;
1092
+ }) => Promise<SapDayAllocation>;
1093
+ };
1094
+ assignments: {
1095
+ list: (opts?: {
1096
+ signal?: AbortSignal;
1097
+ }) => Promise<{
1098
+ items: SapAssignment[];
1099
+ }>;
1100
+ create: (payload: CreateSapAssignmentInput, opts?: {
1101
+ signal?: AbortSignal;
1102
+ }) => Promise<SapAssignment>;
1103
+ update: (payload: UpdateSapAssignmentInput, opts?: {
1104
+ signal?: AbortSignal;
1105
+ }) => Promise<SapAssignment>;
1106
+ remove: (assignmentId: string, opts?: {
1107
+ signal?: AbortSignal;
1108
+ }) => Promise<{
1109
+ ok: true;
1110
+ }>;
1111
+ };
1112
+ };
715
1113
  readonly admin: {
716
1114
  applications: {
717
- /** Get application audit timeline (PLA-712). Requires admin Bearer token. */
718
- history: (id: string, opts: {
719
- accessToken: string;
1115
+ /**
1116
+ * Get application audit timeline (PLA-712). Requires admin Bearer token.
1117
+ *
1118
+ * @deprecated The embed handler for this method never existed — calls
1119
+ * always 404'd (see PLA-1199). Retained as a compile-time compatibility
1120
+ * surface for published-consumer code; delegates to the canonical
1121
+ * `GET /api/v1/audit/application-logs?applicationId=` (ADR-054), which
1122
+ * reads the same `application_audit_logs` table. The `accessToken`
1123
+ * argument is accepted but unused — the v1 surface authenticates with
1124
+ * the org API key (`audit:read` scope) instead of an admin JWT. Remove
1125
+ * in the next major version.
1126
+ */
1127
+ history: (id: string, opts?: {
1128
+ accessToken?: string;
720
1129
  signal?: AbortSignal;
721
1130
  }) => Promise<ApplicationHistoryResponse>;
722
- transition: (id: string, payload: ApplicationTransitionPayload, opts: {
723
- accessToken: string;
1131
+ transition: (id: string, payload: ApplicationTransitionPayload, opts?: {
1132
+ accessToken?: string;
724
1133
  signal?: AbortSignal;
725
1134
  }) => Promise<ApplicationTransitionResponse>;
726
- getAnnotations: (id: string, opts: {
727
- accessToken: string;
1135
+ getAnnotations: (id: string, opts?: {
1136
+ accessToken?: string;
728
1137
  signal?: AbortSignal;
729
1138
  }) => Promise<ApplicationAnnotations>;
730
1139
  addNote: (id: string, payload: {
731
1140
  body: string;
732
- }, opts: {
733
- accessToken: string;
1141
+ }, opts?: {
1142
+ accessToken?: string;
734
1143
  signal?: AbortSignal;
735
1144
  }) => Promise<ApplicationNote>;
736
1145
  setTags: (id: string, payload: {
737
1146
  tags: string[];
738
- }, opts: {
739
- accessToken: string;
1147
+ }, opts?: {
1148
+ accessToken?: string;
740
1149
  signal?: AbortSignal;
741
1150
  }) => Promise<string[]>;
742
1151
  setScore: (id: string, payload: {
743
1152
  value: number;
744
- }, opts: {
745
- accessToken: string;
1153
+ }, opts?: {
1154
+ accessToken?: string;
746
1155
  signal?: AbortSignal;
747
1156
  }) => Promise<ApplicationScore>;
748
1157
  };
749
1158
  givebutter: {
750
1159
  campaigns: {
751
- list: (opts: {
752
- accessToken: string;
1160
+ list: (opts?: {
1161
+ accessToken?: string;
753
1162
  signal?: AbortSignal;
754
1163
  }) => Promise<unknown[]>;
755
1164
  discountCodes: {
756
- list: (campaignId: number, opts: {
757
- accessToken: string;
1165
+ list: (campaignId: number, opts?: {
1166
+ accessToken?: string;
758
1167
  signal?: AbortSignal;
759
1168
  }) => Promise<unknown[]>;
760
1169
  create: (campaignId: number, payload: {
@@ -762,8 +1171,8 @@ declare class PlayaOSClient {
762
1171
  value: number;
763
1172
  type: "percent" | "fixed";
764
1173
  expirationDate?: string;
765
- }, opts: {
766
- accessToken: string;
1174
+ }, opts?: {
1175
+ accessToken?: string;
767
1176
  signal?: AbortSignal;
768
1177
  }) => Promise<unknown>;
769
1178
  };
@@ -772,89 +1181,89 @@ declare class PlayaOSClient {
772
1181
  name: string;
773
1182
  price: number;
774
1183
  totalQuantity?: number;
775
- }, opts: {
776
- accessToken: string;
1184
+ }, opts?: {
1185
+ accessToken?: string;
777
1186
  signal?: AbortSignal;
778
1187
  }) => Promise<unknown>;
779
1188
  };
780
1189
  };
781
1190
  };
782
1191
  members: {
783
- create: (payload: MemberCreatePayload, opts: {
784
- accessToken: string;
1192
+ create: (payload: MemberCreatePayload, opts?: {
1193
+ accessToken?: string;
785
1194
  signal?: AbortSignal;
786
1195
  }) => Promise<MemberCreateResponse>;
787
- update: (id: string, patch: MemberUpdatePayload, opts: {
788
- accessToken: string;
1196
+ update: (id: string, patch: MemberUpdatePayload, opts?: {
1197
+ accessToken?: string;
789
1198
  signal?: AbortSignal;
790
1199
  }) => Promise<MemberUpdateResponse>;
791
- deactivate: (id: string, opts: {
792
- accessToken: string;
1200
+ deactivate: (id: string, opts?: {
1201
+ accessToken?: string;
793
1202
  signal?: AbortSignal;
794
1203
  }) => Promise<MemberDeactivateResponse>;
795
1204
  };
796
1205
  announcements: {
797
1206
  /** Send an email blast to camp members (PLA-706). Requires admin Bearer token. */
798
- send: (payload: AnnouncementSendPayload, opts: {
799
- accessToken: string;
1207
+ send: (payload: AnnouncementSendPayload, opts?: {
1208
+ accessToken?: string;
800
1209
  signal?: AbortSignal;
801
1210
  }) => Promise<AnnouncementSendResponse>;
802
1211
  };
803
1212
  dues: {
804
1213
  /** Create a manual dues/payment record (PLA-708). Requires admin Bearer token. */
805
- create: (payload: DuesCreatePayload, opts: {
806
- accessToken: string;
1214
+ create: (payload: DuesCreatePayload, opts?: {
1215
+ accessToken?: string;
807
1216
  signal?: AbortSignal;
808
1217
  }) => Promise<DuesCreateResponse>;
809
1218
  /** Update a dues/payment record (PLA-708). Requires admin Bearer token. */
810
- update: (id: string, payload: DuesUpdatePayload, opts: {
811
- accessToken: string;
1219
+ update: (id: string, payload: DuesUpdatePayload, opts?: {
1220
+ accessToken?: string;
812
1221
  signal?: AbortSignal;
813
1222
  }) => Promise<DuesUpdateResponse>;
814
1223
  };
815
1224
  org: {
816
1225
  /** Update camp configuration settings (PLA-709). Requires admin Bearer token. */
817
- update: (payload: OrgUpdatePayload, opts: {
818
- accessToken: string;
1226
+ update: (payload: OrgUpdatePayload, opts?: {
1227
+ accessToken?: string;
819
1228
  signal?: AbortSignal;
820
1229
  }) => Promise<OrgUpdateResponse>;
821
1230
  };
822
1231
  scheduling: {
823
1232
  availability: {
824
1233
  /** Get interview availability for an interviewer (PLA-713). Requires admin Bearer token. */
825
- get: (interviewerId: string, opts: {
826
- accessToken: string;
1234
+ get: (interviewerId: string, opts?: {
1235
+ accessToken?: string;
827
1236
  signal?: AbortSignal;
828
- }) => Promise<SetAvailabilityResponse>;
1237
+ }) => Promise<GetAvailabilityResponse>;
829
1238
  /** Set interview availability for an interviewer (PLA-713). Requires admin Bearer token. */
830
- set: (interviewerId: string, payload: SetAvailabilityInput, opts: {
831
- accessToken: string;
1239
+ set: (interviewerId: string, payload: SetAvailabilityInput, opts?: {
1240
+ accessToken?: string;
832
1241
  signal?: AbortSignal;
833
1242
  }) => Promise<SetAvailabilityResponse>;
834
1243
  };
835
1244
  calendar: {
836
1245
  /** Get Google Calendar connection status for an interviewer (PLA-726). Requires admin Bearer. */
837
- status: (interviewerId: string, opts: {
838
- accessToken: string;
1246
+ status: (interviewerId: string, opts?: {
1247
+ accessToken?: string;
839
1248
  signal?: AbortSignal;
840
1249
  }) => Promise<CalendarStatus>;
841
1250
  /** List available Google Calendars (PLA-726). Requires admin Bearer. */
842
- listCalendars: (interviewerId: string, opts: {
843
- accessToken: string;
1251
+ listCalendars: (interviewerId: string, opts?: {
1252
+ accessToken?: string;
844
1253
  signal?: AbortSignal;
845
1254
  }) => Promise<{
846
1255
  calendars: GoogleCalendar[];
847
1256
  }>;
848
1257
  /** Select which Google Calendar to use (PLA-726). Requires admin Bearer. */
849
- select: (interviewerId: string, payload: SelectCalendarInput, opts: {
850
- accessToken: string;
1258
+ select: (interviewerId: string, payload: SelectCalendarInput, opts?: {
1259
+ accessToken?: string;
851
1260
  signal?: AbortSignal;
852
1261
  }) => Promise<{
853
1262
  calendarId: string;
854
1263
  }>;
855
1264
  /** Disconnect Google Calendar from interviewer (PLA-726). Requires admin Bearer. */
856
- disconnect: (interviewerId: string, opts: {
857
- accessToken: string;
1265
+ disconnect: (interviewerId: string, opts?: {
1266
+ accessToken?: string;
858
1267
  signal?: AbortSignal;
859
1268
  }) => Promise<{
860
1269
  disconnected: boolean;
@@ -862,13 +1271,13 @@ declare class PlayaOSClient {
862
1271
  };
863
1272
  bookingTokens: {
864
1273
  /** Create a booking token for an application's interview link (PLA-714). Requires admin Bearer token. */
865
- create: (payload: CreateBookingTokenInput, opts: {
866
- accessToken: string;
1274
+ create: (payload: CreateBookingTokenInput, opts?: {
1275
+ accessToken?: string;
867
1276
  signal?: AbortSignal;
868
1277
  }) => Promise<BookingToken>;
869
1278
  /** Get an existing booking token for an application (PLA-714). Requires admin Bearer token. */
870
- get: (applicationId: string, opts: {
871
- accessToken: string;
1279
+ get: (applicationId: string, opts?: {
1280
+ accessToken?: string;
872
1281
  signal?: AbortSignal;
873
1282
  }) => Promise<BookingToken>;
874
1283
  };
@@ -1007,5 +1416,5 @@ interface PublicMarketplaceClient {
1007
1416
  }
1008
1417
  declare function createPublicMarketplaceClient(opts: PublicMarketplaceClientOptions): PublicMarketplaceClient;
1009
1418
  //#endregion
1010
- export { ApiClientError, type Application, type ApplicationAnnotations, type ApplicationCreatePayload, type ApplicationCreateResponse, type ApplicationNote, type ApplicationScore, type ApplicationStatus, type ApplicationTransitionPayload, type ApplicationTransitionResponse, type Commitment, type CommitmentDataType, type CommitmentValue, type CommitmentsListResponse, type DuesStatus, type ExchangeParams, type ExchangeResult, type ImageUploadTarget, type ListingImage, MAX_IMAGE_POSITION, type MarketplaceFlagReason, type Member, type MemberCreatePayload, type MemberCreateResponse, type MemberDeactivateResponse, type MemberRole, type MemberUpdatePayload, type MemberUpdateResponse, type NewListingInput, type OrgConfig, type PaymentPageResponse, PlayaOSClient, type PublicMarketplaceClient, type PublicMarketplaceClientOptions, type Shift, type ShiftSignup, type ShiftType, type Waiver, type WaiverContent, type WaiverSection, type WaiverSignPayload, type WaiverSignResponse, type WaiverStatus, createClient, createPublicMarketplaceClient, exchangeCode };
1419
+ export { ApiClientError, type Application, type ApplicationAnnotations, type ApplicationCreatePayload, type ApplicationCreateResponse, type ApplicationNote, type ApplicationScore, type ApplicationStatus, type ApplicationTransitionPayload, type ApplicationTransitionResponse, type BikeRentalCatalogItem, type BikeRentalCatalogResponse, type BikeRentalDeliveryMode, type BikeRentalFramePreference, type BikeRentalInterestedMember, type BikeRentalInterestedNotReservedResponse, type BikeRentalRequestInput, type BikeRentalRequestResult, type BikeRentalReservation, type BikeRentalReservationListResponse, type BikeRentalWaiver, type Commitment, type CommitmentDataType, type CommitmentValue, type CommitmentsListResponse, type CreateSapAssignmentInput, type DuesStatus, type ExchangeParams, type ExchangeResult, type ImageUploadTarget, type ListingImage, MAX_IMAGE_POSITION, type MarketplaceFlagReason, type Member, type MemberCreatePayload, type MemberCreateResponse, type MemberDeactivateResponse, type MemberRole, type MemberUpdatePayload, type MemberUpdateResponse, type NewListingInput, type OrgConfig, type PackingCampItem, type PackingItem, type PackingItemStatus, type PackingLayer, type PackingListResponse, type PackingPersonalItem, type PaymentPageResponse, PlayaOSClient, type PublicMarketplaceClient, type PublicMarketplaceClientOptions, type SapAllocation, type SapAssignment, type SapDayAllocation, type Shift, type ShiftSignup, type ShiftType, type UpdateSapAllocationInput, type UpdateSapAssignmentInput, type UpsertPackingCampItemInput, type UpsertSapDayAllocationInput, type Waiver, type WaiverContent, type WaiverSection, type WaiverSignPayload, type WaiverSignResponse, type WaiverStatus, createClient, createPublicMarketplaceClient, exchangeCode };
1011
1420
  //# sourceMappingURL=index.d.ts.map