@blackcode_sa/metaestetics-api 1.12.68 → 1.12.69

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.
@@ -2053,6 +2053,7 @@ declare enum NotificationType {
2053
2053
  FORM_REMINDER = "formReminder",// Reminds user to fill a specific form
2054
2054
  FORM_SUBMISSION_CONFIRMATION = "formSubmissionConfirmation",// Confirms form was submitted
2055
2055
  REVIEW_REQUEST = "reviewRequest",// Request for patient review post-appointment
2056
+ PROCEDURE_RECOMMENDATION = "procedureRecommendation",// Doctor recommended a procedure for follow-up
2056
2057
  PAYMENT_DUE = "paymentDue",
2057
2058
  PAYMENT_CONFIRMATION = "paymentConfirmation",
2058
2059
  PAYMENT_FAILED = "paymentFailed",
@@ -2222,6 +2223,24 @@ interface ReviewRequestNotification extends BaseNotification {
2222
2223
  practitionerName?: string;
2223
2224
  procedureName?: string;
2224
2225
  }
2226
+ /**
2227
+ * Notification for when a doctor recommends a procedure for follow-up.
2228
+ * Example: "Dr. Smith recommended [Procedure Name] for you. Suggested timeframe: in 2 weeks"
2229
+ */
2230
+ interface ProcedureRecommendationNotification extends BaseNotification {
2231
+ notificationType: NotificationType.PROCEDURE_RECOMMENDATION;
2232
+ appointmentId: string;
2233
+ recommendationId: string;
2234
+ procedureId: string;
2235
+ procedureName: string;
2236
+ practitionerName: string;
2237
+ clinicName: string;
2238
+ note?: string;
2239
+ timeframe: {
2240
+ value: number;
2241
+ unit: 'day' | 'week' | 'month' | 'year';
2242
+ };
2243
+ }
2225
2244
  /**
2226
2245
  * Generic notification for direct messages or announcements.
2227
2246
  */
@@ -2237,7 +2256,7 @@ interface PaymentConfirmationNotification extends BaseNotification {
2237
2256
  /**
2238
2257
  * Unija svih tipova notifikacija
2239
2258
  */
2240
- type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | GeneralMessageNotification | PaymentConfirmationNotification;
2259
+ type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | ProcedureRecommendationNotification | GeneralMessageNotification | PaymentConfirmationNotification;
2241
2260
 
2242
2261
  /**
2243
2262
  * Minimal interface for the new mailgun.js client's messages API
@@ -2676,6 +2695,20 @@ declare class AppointmentAggregationService {
2676
2695
  * @param after - The appointment state after update
2677
2696
  */
2678
2697
  private handleZonePhotosUpdate;
2698
+ /**
2699
+ * Checks if recommended procedures have changed between two appointment states
2700
+ * @param before - The appointment state before update
2701
+ * @param after - The appointment state after update
2702
+ * @returns True if recommendations have changed, false otherwise
2703
+ */
2704
+ private hasRecommendationsChanged;
2705
+ /**
2706
+ * Handles recommended procedures update - creates notifications for newly added recommendations
2707
+ * @param before - The appointment state before update
2708
+ * @param after - The appointment state after update
2709
+ * @param patientProfile - The patient profile (for expo tokens)
2710
+ */
2711
+ private handleRecommendedProceduresUpdate;
2679
2712
  }
2680
2713
 
2681
2714
  /**
@@ -2053,6 +2053,7 @@ declare enum NotificationType {
2053
2053
  FORM_REMINDER = "formReminder",// Reminds user to fill a specific form
2054
2054
  FORM_SUBMISSION_CONFIRMATION = "formSubmissionConfirmation",// Confirms form was submitted
2055
2055
  REVIEW_REQUEST = "reviewRequest",// Request for patient review post-appointment
2056
+ PROCEDURE_RECOMMENDATION = "procedureRecommendation",// Doctor recommended a procedure for follow-up
2056
2057
  PAYMENT_DUE = "paymentDue",
2057
2058
  PAYMENT_CONFIRMATION = "paymentConfirmation",
2058
2059
  PAYMENT_FAILED = "paymentFailed",
@@ -2222,6 +2223,24 @@ interface ReviewRequestNotification extends BaseNotification {
2222
2223
  practitionerName?: string;
2223
2224
  procedureName?: string;
2224
2225
  }
2226
+ /**
2227
+ * Notification for when a doctor recommends a procedure for follow-up.
2228
+ * Example: "Dr. Smith recommended [Procedure Name] for you. Suggested timeframe: in 2 weeks"
2229
+ */
2230
+ interface ProcedureRecommendationNotification extends BaseNotification {
2231
+ notificationType: NotificationType.PROCEDURE_RECOMMENDATION;
2232
+ appointmentId: string;
2233
+ recommendationId: string;
2234
+ procedureId: string;
2235
+ procedureName: string;
2236
+ practitionerName: string;
2237
+ clinicName: string;
2238
+ note?: string;
2239
+ timeframe: {
2240
+ value: number;
2241
+ unit: 'day' | 'week' | 'month' | 'year';
2242
+ };
2243
+ }
2225
2244
  /**
2226
2245
  * Generic notification for direct messages or announcements.
2227
2246
  */
@@ -2237,7 +2256,7 @@ interface PaymentConfirmationNotification extends BaseNotification {
2237
2256
  /**
2238
2257
  * Unija svih tipova notifikacija
2239
2258
  */
2240
- type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | GeneralMessageNotification | PaymentConfirmationNotification;
2259
+ type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | ProcedureRecommendationNotification | GeneralMessageNotification | PaymentConfirmationNotification;
2241
2260
 
2242
2261
  /**
2243
2262
  * Minimal interface for the new mailgun.js client's messages API
@@ -2676,6 +2695,20 @@ declare class AppointmentAggregationService {
2676
2695
  * @param after - The appointment state after update
2677
2696
  */
2678
2697
  private handleZonePhotosUpdate;
2698
+ /**
2699
+ * Checks if recommended procedures have changed between two appointment states
2700
+ * @param before - The appointment state before update
2701
+ * @param after - The appointment state after update
2702
+ * @returns True if recommendations have changed, false otherwise
2703
+ */
2704
+ private hasRecommendationsChanged;
2705
+ /**
2706
+ * Handles recommended procedures update - creates notifications for newly added recommendations
2707
+ * @param before - The appointment state before update
2708
+ * @param after - The appointment state after update
2709
+ * @param patientProfile - The patient profile (for expo tokens)
2710
+ */
2711
+ private handleRecommendedProceduresUpdate;
2679
2712
  }
2680
2713
 
2681
2714
  /**
@@ -489,6 +489,7 @@ var NotificationType = /* @__PURE__ */ ((NotificationType2) => {
489
489
  NotificationType2["FORM_REMINDER"] = "formReminder";
490
490
  NotificationType2["FORM_SUBMISSION_CONFIRMATION"] = "formSubmissionConfirmation";
491
491
  NotificationType2["REVIEW_REQUEST"] = "reviewRequest";
492
+ NotificationType2["PROCEDURE_RECOMMENDATION"] = "procedureRecommendation";
492
493
  NotificationType2["PAYMENT_DUE"] = "paymentDue";
493
494
  NotificationType2["PAYMENT_CONFIRMATION"] = "paymentConfirmation";
494
495
  NotificationType2["PAYMENT_FAILED"] = "paymentFailed";
@@ -2928,6 +2929,11 @@ var AppointmentAggregationService = class {
2928
2929
  Logger.info(`[AggService] Zone photos changed for appointment ${after.id}`);
2929
2930
  await this.handleZonePhotosUpdate(before, after);
2930
2931
  }
2932
+ const recommendationsChanged = this.hasRecommendationsChanged(before, after);
2933
+ if (recommendationsChanged) {
2934
+ Logger.info(`[AggService] Recommended procedures changed for appointment ${after.id}`);
2935
+ await this.handleRecommendedProceduresUpdate(before, after, patientProfile);
2936
+ }
2931
2937
  Logger.info(`[AggService] Successfully processed UPDATE for appointment: ${after.id}`);
2932
2938
  } catch (error) {
2933
2939
  Logger.error(
@@ -3960,6 +3966,104 @@ var AppointmentAggregationService = class {
3960
3966
  );
3961
3967
  }
3962
3968
  }
3969
+ /**
3970
+ * Checks if recommended procedures have changed between two appointment states
3971
+ * @param before - The appointment state before update
3972
+ * @param after - The appointment state after update
3973
+ * @returns True if recommendations have changed, false otherwise
3974
+ */
3975
+ hasRecommendationsChanged(before, after) {
3976
+ var _a, _b;
3977
+ const beforeRecommendations = ((_a = before.metadata) == null ? void 0 : _a.recommendedProcedures) || [];
3978
+ const afterRecommendations = ((_b = after.metadata) == null ? void 0 : _b.recommendedProcedures) || [];
3979
+ if (beforeRecommendations.length !== afterRecommendations.length) {
3980
+ return true;
3981
+ }
3982
+ for (let i = 0; i < afterRecommendations.length; i++) {
3983
+ const beforeRec = beforeRecommendations[i];
3984
+ const afterRec = afterRecommendations[i];
3985
+ if (!beforeRec || !afterRec) {
3986
+ return true;
3987
+ }
3988
+ if (beforeRec.procedure.procedureId !== afterRec.procedure.procedureId || beforeRec.note !== afterRec.note || beforeRec.timeframe.value !== afterRec.timeframe.value || beforeRec.timeframe.unit !== afterRec.timeframe.unit) {
3989
+ return true;
3990
+ }
3991
+ }
3992
+ return false;
3993
+ }
3994
+ /**
3995
+ * Handles recommended procedures update - creates notifications for newly added recommendations
3996
+ * @param before - The appointment state before update
3997
+ * @param after - The appointment state after update
3998
+ * @param patientProfile - The patient profile (for expo tokens)
3999
+ */
4000
+ async handleRecommendedProceduresUpdate(before, after, patientProfile) {
4001
+ var _a, _b, _c, _d, _e;
4002
+ try {
4003
+ const beforeRecommendations = ((_a = before.metadata) == null ? void 0 : _a.recommendedProcedures) || [];
4004
+ const afterRecommendations = ((_b = after.metadata) == null ? void 0 : _b.recommendedProcedures) || [];
4005
+ const newRecommendations = afterRecommendations.slice(beforeRecommendations.length);
4006
+ if (newRecommendations.length === 0) {
4007
+ Logger.info(
4008
+ `[AggService] No new recommendations detected for appointment ${after.id}`
4009
+ );
4010
+ return;
4011
+ }
4012
+ Logger.info(
4013
+ `[AggService] Found ${newRecommendations.length} new recommendation(s) for appointment ${after.id}`
4014
+ );
4015
+ for (let i = 0; i < newRecommendations.length; i++) {
4016
+ const recommendation = newRecommendations[i];
4017
+ const recommendationIndex = beforeRecommendations.length + i;
4018
+ const recommendationId = `${after.id}:${recommendationIndex}`;
4019
+ const timeframeText = `${recommendation.timeframe.value} ${recommendation.timeframe.unit}${recommendation.timeframe.value > 1 ? "s" : ""}`;
4020
+ const notificationPayload = {
4021
+ userId: after.patientId,
4022
+ userRole: "patient" /* PATIENT */,
4023
+ notificationType: "procedureRecommendation" /* PROCEDURE_RECOMMENDATION */,
4024
+ notificationTime: admin6.firestore.Timestamp.now(),
4025
+ notificationTokens: (patientProfile == null ? void 0 : patientProfile.expoTokens) || [],
4026
+ title: "New Procedure Recommendation",
4027
+ body: `${((_c = after.practitionerInfo) == null ? void 0 : _c.name) || "Your doctor"} recommended "${recommendation.procedure.procedureName}" for you. Suggested timeframe: in ${timeframeText}`,
4028
+ appointmentId: after.id,
4029
+ recommendationId,
4030
+ procedureId: recommendation.procedure.procedureId,
4031
+ procedureName: recommendation.procedure.procedureName,
4032
+ practitionerName: ((_d = after.practitionerInfo) == null ? void 0 : _d.name) || "Unknown Practitioner",
4033
+ clinicName: ((_e = after.clinicInfo) == null ? void 0 : _e.name) || "Unknown Clinic",
4034
+ note: recommendation.note,
4035
+ timeframe: recommendation.timeframe
4036
+ };
4037
+ try {
4038
+ const notificationId = await this.notificationsAdmin.createNotification(
4039
+ notificationPayload
4040
+ );
4041
+ Logger.info(
4042
+ `[AggService] Created notification ${notificationId} for recommendation ${recommendationId}`
4043
+ );
4044
+ if ((patientProfile == null ? void 0 : patientProfile.expoTokens) && patientProfile.expoTokens.length > 0) {
4045
+ const notification = await this.notificationsAdmin.getNotification(notificationId);
4046
+ if (notification) {
4047
+ await this.notificationsAdmin.sendPushNotification(notification);
4048
+ Logger.info(
4049
+ `[AggService] Sent push notification for recommendation ${recommendationId}`
4050
+ );
4051
+ }
4052
+ }
4053
+ } catch (error) {
4054
+ Logger.error(
4055
+ `[AggService] Error creating notification for recommendation ${recommendationId}:`,
4056
+ error
4057
+ );
4058
+ }
4059
+ }
4060
+ } catch (error) {
4061
+ Logger.error(
4062
+ `[AggService] Error handling recommended procedures update for appointment ${after.id}:`,
4063
+ error
4064
+ );
4065
+ }
4066
+ }
3963
4067
  };
3964
4068
 
3965
4069
  // src/admin/aggregation/clinic/clinic.aggregation.service.ts
@@ -427,6 +427,7 @@ var NotificationType = /* @__PURE__ */ ((NotificationType2) => {
427
427
  NotificationType2["FORM_REMINDER"] = "formReminder";
428
428
  NotificationType2["FORM_SUBMISSION_CONFIRMATION"] = "formSubmissionConfirmation";
429
429
  NotificationType2["REVIEW_REQUEST"] = "reviewRequest";
430
+ NotificationType2["PROCEDURE_RECOMMENDATION"] = "procedureRecommendation";
430
431
  NotificationType2["PAYMENT_DUE"] = "paymentDue";
431
432
  NotificationType2["PAYMENT_CONFIRMATION"] = "paymentConfirmation";
432
433
  NotificationType2["PAYMENT_FAILED"] = "paymentFailed";
@@ -2866,6 +2867,11 @@ var AppointmentAggregationService = class {
2866
2867
  Logger.info(`[AggService] Zone photos changed for appointment ${after.id}`);
2867
2868
  await this.handleZonePhotosUpdate(before, after);
2868
2869
  }
2870
+ const recommendationsChanged = this.hasRecommendationsChanged(before, after);
2871
+ if (recommendationsChanged) {
2872
+ Logger.info(`[AggService] Recommended procedures changed for appointment ${after.id}`);
2873
+ await this.handleRecommendedProceduresUpdate(before, after, patientProfile);
2874
+ }
2869
2875
  Logger.info(`[AggService] Successfully processed UPDATE for appointment: ${after.id}`);
2870
2876
  } catch (error) {
2871
2877
  Logger.error(
@@ -3898,6 +3904,104 @@ var AppointmentAggregationService = class {
3898
3904
  );
3899
3905
  }
3900
3906
  }
3907
+ /**
3908
+ * Checks if recommended procedures have changed between two appointment states
3909
+ * @param before - The appointment state before update
3910
+ * @param after - The appointment state after update
3911
+ * @returns True if recommendations have changed, false otherwise
3912
+ */
3913
+ hasRecommendationsChanged(before, after) {
3914
+ var _a, _b;
3915
+ const beforeRecommendations = ((_a = before.metadata) == null ? void 0 : _a.recommendedProcedures) || [];
3916
+ const afterRecommendations = ((_b = after.metadata) == null ? void 0 : _b.recommendedProcedures) || [];
3917
+ if (beforeRecommendations.length !== afterRecommendations.length) {
3918
+ return true;
3919
+ }
3920
+ for (let i = 0; i < afterRecommendations.length; i++) {
3921
+ const beforeRec = beforeRecommendations[i];
3922
+ const afterRec = afterRecommendations[i];
3923
+ if (!beforeRec || !afterRec) {
3924
+ return true;
3925
+ }
3926
+ if (beforeRec.procedure.procedureId !== afterRec.procedure.procedureId || beforeRec.note !== afterRec.note || beforeRec.timeframe.value !== afterRec.timeframe.value || beforeRec.timeframe.unit !== afterRec.timeframe.unit) {
3927
+ return true;
3928
+ }
3929
+ }
3930
+ return false;
3931
+ }
3932
+ /**
3933
+ * Handles recommended procedures update - creates notifications for newly added recommendations
3934
+ * @param before - The appointment state before update
3935
+ * @param after - The appointment state after update
3936
+ * @param patientProfile - The patient profile (for expo tokens)
3937
+ */
3938
+ async handleRecommendedProceduresUpdate(before, after, patientProfile) {
3939
+ var _a, _b, _c, _d, _e;
3940
+ try {
3941
+ const beforeRecommendations = ((_a = before.metadata) == null ? void 0 : _a.recommendedProcedures) || [];
3942
+ const afterRecommendations = ((_b = after.metadata) == null ? void 0 : _b.recommendedProcedures) || [];
3943
+ const newRecommendations = afterRecommendations.slice(beforeRecommendations.length);
3944
+ if (newRecommendations.length === 0) {
3945
+ Logger.info(
3946
+ `[AggService] No new recommendations detected for appointment ${after.id}`
3947
+ );
3948
+ return;
3949
+ }
3950
+ Logger.info(
3951
+ `[AggService] Found ${newRecommendations.length} new recommendation(s) for appointment ${after.id}`
3952
+ );
3953
+ for (let i = 0; i < newRecommendations.length; i++) {
3954
+ const recommendation = newRecommendations[i];
3955
+ const recommendationIndex = beforeRecommendations.length + i;
3956
+ const recommendationId = `${after.id}:${recommendationIndex}`;
3957
+ const timeframeText = `${recommendation.timeframe.value} ${recommendation.timeframe.unit}${recommendation.timeframe.value > 1 ? "s" : ""}`;
3958
+ const notificationPayload = {
3959
+ userId: after.patientId,
3960
+ userRole: "patient" /* PATIENT */,
3961
+ notificationType: "procedureRecommendation" /* PROCEDURE_RECOMMENDATION */,
3962
+ notificationTime: admin6.firestore.Timestamp.now(),
3963
+ notificationTokens: (patientProfile == null ? void 0 : patientProfile.expoTokens) || [],
3964
+ title: "New Procedure Recommendation",
3965
+ body: `${((_c = after.practitionerInfo) == null ? void 0 : _c.name) || "Your doctor"} recommended "${recommendation.procedure.procedureName}" for you. Suggested timeframe: in ${timeframeText}`,
3966
+ appointmentId: after.id,
3967
+ recommendationId,
3968
+ procedureId: recommendation.procedure.procedureId,
3969
+ procedureName: recommendation.procedure.procedureName,
3970
+ practitionerName: ((_d = after.practitionerInfo) == null ? void 0 : _d.name) || "Unknown Practitioner",
3971
+ clinicName: ((_e = after.clinicInfo) == null ? void 0 : _e.name) || "Unknown Clinic",
3972
+ note: recommendation.note,
3973
+ timeframe: recommendation.timeframe
3974
+ };
3975
+ try {
3976
+ const notificationId = await this.notificationsAdmin.createNotification(
3977
+ notificationPayload
3978
+ );
3979
+ Logger.info(
3980
+ `[AggService] Created notification ${notificationId} for recommendation ${recommendationId}`
3981
+ );
3982
+ if ((patientProfile == null ? void 0 : patientProfile.expoTokens) && patientProfile.expoTokens.length > 0) {
3983
+ const notification = await this.notificationsAdmin.getNotification(notificationId);
3984
+ if (notification) {
3985
+ await this.notificationsAdmin.sendPushNotification(notification);
3986
+ Logger.info(
3987
+ `[AggService] Sent push notification for recommendation ${recommendationId}`
3988
+ );
3989
+ }
3990
+ }
3991
+ } catch (error) {
3992
+ Logger.error(
3993
+ `[AggService] Error creating notification for recommendation ${recommendationId}:`,
3994
+ error
3995
+ );
3996
+ }
3997
+ }
3998
+ } catch (error) {
3999
+ Logger.error(
4000
+ `[AggService] Error handling recommended procedures update for appointment ${after.id}:`,
4001
+ error
4002
+ );
4003
+ }
4004
+ }
3901
4005
  };
3902
4006
 
3903
4007
  // src/admin/aggregation/clinic/clinic.aggregation.service.ts
package/dist/index.d.mts CHANGED
@@ -3216,6 +3216,7 @@ declare enum NotificationType {
3216
3216
  FORM_REMINDER = "formReminder",// Reminds user to fill a specific form
3217
3217
  FORM_SUBMISSION_CONFIRMATION = "formSubmissionConfirmation",// Confirms form was submitted
3218
3218
  REVIEW_REQUEST = "reviewRequest",// Request for patient review post-appointment
3219
+ PROCEDURE_RECOMMENDATION = "procedureRecommendation",// Doctor recommended a procedure for follow-up
3219
3220
  PAYMENT_DUE = "paymentDue",
3220
3221
  PAYMENT_CONFIRMATION = "paymentConfirmation",
3221
3222
  PAYMENT_FAILED = "paymentFailed",
@@ -3385,6 +3386,24 @@ interface ReviewRequestNotification extends BaseNotification {
3385
3386
  practitionerName?: string;
3386
3387
  procedureName?: string;
3387
3388
  }
3389
+ /**
3390
+ * Notification for when a doctor recommends a procedure for follow-up.
3391
+ * Example: "Dr. Smith recommended [Procedure Name] for you. Suggested timeframe: in 2 weeks"
3392
+ */
3393
+ interface ProcedureRecommendationNotification extends BaseNotification {
3394
+ notificationType: NotificationType.PROCEDURE_RECOMMENDATION;
3395
+ appointmentId: string;
3396
+ recommendationId: string;
3397
+ procedureId: string;
3398
+ procedureName: string;
3399
+ practitionerName: string;
3400
+ clinicName: string;
3401
+ note?: string;
3402
+ timeframe: {
3403
+ value: number;
3404
+ unit: 'day' | 'week' | 'month' | 'year';
3405
+ };
3406
+ }
3388
3407
  /**
3389
3408
  * Generic notification for direct messages or announcements.
3390
3409
  */
@@ -3400,7 +3419,7 @@ interface PaymentConfirmationNotification extends BaseNotification {
3400
3419
  /**
3401
3420
  * Unija svih tipova notifikacija
3402
3421
  */
3403
- type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | GeneralMessageNotification | PaymentConfirmationNotification;
3422
+ type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | ProcedureRecommendationNotification | GeneralMessageNotification | PaymentConfirmationNotification;
3404
3423
 
3405
3424
  declare enum AllergyType {
3406
3425
  MEDICATION = "medication",
@@ -7695,4 +7714,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
7695
7714
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
7696
7715
  declare const getFirebaseFunctions: () => Promise<Functions>;
7697
7716
 
7698
- export { AESTHETIC_ANALYSIS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type NextStepsRecommendation, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedureProduct, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
7717
+ export { AESTHETIC_ANALYSIS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type NextStepsRecommendation, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedureProduct, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
package/dist/index.d.ts CHANGED
@@ -3216,6 +3216,7 @@ declare enum NotificationType {
3216
3216
  FORM_REMINDER = "formReminder",// Reminds user to fill a specific form
3217
3217
  FORM_SUBMISSION_CONFIRMATION = "formSubmissionConfirmation",// Confirms form was submitted
3218
3218
  REVIEW_REQUEST = "reviewRequest",// Request for patient review post-appointment
3219
+ PROCEDURE_RECOMMENDATION = "procedureRecommendation",// Doctor recommended a procedure for follow-up
3219
3220
  PAYMENT_DUE = "paymentDue",
3220
3221
  PAYMENT_CONFIRMATION = "paymentConfirmation",
3221
3222
  PAYMENT_FAILED = "paymentFailed",
@@ -3385,6 +3386,24 @@ interface ReviewRequestNotification extends BaseNotification {
3385
3386
  practitionerName?: string;
3386
3387
  procedureName?: string;
3387
3388
  }
3389
+ /**
3390
+ * Notification for when a doctor recommends a procedure for follow-up.
3391
+ * Example: "Dr. Smith recommended [Procedure Name] for you. Suggested timeframe: in 2 weeks"
3392
+ */
3393
+ interface ProcedureRecommendationNotification extends BaseNotification {
3394
+ notificationType: NotificationType.PROCEDURE_RECOMMENDATION;
3395
+ appointmentId: string;
3396
+ recommendationId: string;
3397
+ procedureId: string;
3398
+ procedureName: string;
3399
+ practitionerName: string;
3400
+ clinicName: string;
3401
+ note?: string;
3402
+ timeframe: {
3403
+ value: number;
3404
+ unit: 'day' | 'week' | 'month' | 'year';
3405
+ };
3406
+ }
3388
3407
  /**
3389
3408
  * Generic notification for direct messages or announcements.
3390
3409
  */
@@ -3400,7 +3419,7 @@ interface PaymentConfirmationNotification extends BaseNotification {
3400
3419
  /**
3401
3420
  * Unija svih tipova notifikacija
3402
3421
  */
3403
- type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | GeneralMessageNotification | PaymentConfirmationNotification;
3422
+ type Notification = PreRequirementNotification | PostRequirementNotification | RequirementInstructionDueNotification | AppointmentReminderNotification | AppointmentStatusChangeNotification | AppointmentRescheduledProposalNotification | AppointmentCancelledNotification | FormReminderNotification | FormSubmissionConfirmationNotification | ReviewRequestNotification | ProcedureRecommendationNotification | GeneralMessageNotification | PaymentConfirmationNotification;
3404
3423
 
3405
3424
  declare enum AllergyType {
3406
3425
  MEDICATION = "medication",
@@ -7695,4 +7714,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
7695
7714
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
7696
7715
  declare const getFirebaseFunctions: () => Promise<Functions>;
7697
7716
 
7698
- export { AESTHETIC_ANALYSIS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type NextStepsRecommendation, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedureProduct, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
7717
+ export { AESTHETIC_ANALYSIS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type NextStepsRecommendation, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedureProduct, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };