@blackcode_sa/metaestetics-api 1.12.31 → 1.12.33

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
@@ -3235,44 +3235,56 @@ interface UpdateMedicationData extends Partial<AddMedicationData> {
3235
3235
  declare const DEFAULT_MEDICAL_INFO: Omit<PatientMedicalInfo, "patientId" | "lastUpdated" | "updatedBy">;
3236
3236
 
3237
3237
  declare const AESTHETIC_ANALYSIS_COLLECTION = "aesthetic-analysis";
3238
- interface ClinicalFinding {
3239
- concernCategory: string;
3240
- concernName: string;
3241
- severityLevel?: string;
3242
- impactLevel?: string;
3243
- clinicalNotes?: string;
3244
- }
3245
- interface AssessmentScale {
3246
- scaleName: string;
3247
- scaleValue: string;
3248
- category: string;
3238
+ type AestheticAnalysisStatus = 'incomplete' | 'ready_for_planning' | 'treatment_planned';
3239
+ interface ClinicalFindingDetail {
3240
+ severity: string;
3241
+ impact: string;
3242
+ notes?: string;
3243
+ }
3244
+ interface ClinicalFindings {
3245
+ [category: string]: {
3246
+ [concern: string]: ClinicalFindingDetail;
3247
+ };
3249
3248
  }
3250
3249
  interface PatientGoals {
3251
- treatmentTimeline?: string;
3252
- budgetRange?: string;
3253
- naturalnessPreference: number;
3254
- selectedGoalTemplate?: string;
3250
+ timeline?: string;
3251
+ budget?: string;
3252
+ naturalness: number;
3255
3253
  priorities: string[];
3254
+ selectedTemplate?: string;
3255
+ }
3256
+ interface AssessmentScales {
3257
+ [scaleName: string]: string;
3256
3258
  }
3257
3259
  interface AestheticAnalysis {
3260
+ id: string;
3258
3261
  patientId: string;
3262
+ appointmentId?: string;
3263
+ selectedConcerns: string[];
3264
+ clinicalFindings: ClinicalFindings;
3265
+ patientGoals: PatientGoals;
3266
+ assessmentScales: AssessmentScales;
3267
+ completionPercentage: number;
3268
+ status: AestheticAnalysisStatus;
3259
3269
  lastUpdatedBy: string;
3260
3270
  lastUpdatedByRole: 'PATIENT' | 'PRACTITIONER';
3261
- patientGoals: PatientGoals;
3262
- clinicalFindings: ClinicalFinding[];
3263
- assessmentScales: AssessmentScale[];
3264
3271
  createdAt?: Timestamp | any;
3265
3272
  updatedAt?: Timestamp | any;
3266
3273
  }
3267
3274
  interface CreateAestheticAnalysisData {
3275
+ patientId: string;
3276
+ appointmentId?: string;
3277
+ selectedConcerns: string[];
3278
+ clinicalFindings: ClinicalFindings;
3268
3279
  patientGoals: PatientGoals;
3269
- clinicalFindings: ClinicalFinding[];
3270
- assessmentScales: AssessmentScale[];
3280
+ assessmentScales?: AssessmentScales;
3271
3281
  }
3272
3282
  interface UpdateAestheticAnalysisData {
3283
+ appointmentId?: string;
3284
+ selectedConcerns?: string[];
3285
+ clinicalFindings?: ClinicalFindings;
3273
3286
  patientGoals?: PatientGoals;
3274
- clinicalFindings?: ClinicalFinding[];
3275
- assessmentScales?: AssessmentScale[];
3287
+ assessmentScales?: AssessmentScales;
3276
3288
  }
3277
3289
 
3278
3290
  declare const PATIENTS_COLLECTION = "patients";
@@ -4359,8 +4371,12 @@ interface ProcedureExtendedInfo {
4359
4371
  procedureTechnologyName: string;
4360
4372
  procedureProductBrandId: string;
4361
4373
  procedureProductBrandName: string;
4362
- procedureProductId: string;
4363
- procedureProductName: string;
4374
+ procedureProducts: Array<{
4375
+ productId: string;
4376
+ productName: string;
4377
+ brandId: string;
4378
+ brandName: string;
4379
+ }>;
4364
4380
  }
4365
4381
  /**
4366
4382
  * Interface to describe a filled form linked to an appointment.
@@ -4410,26 +4426,38 @@ interface ZonePhotoUploadData {
4410
4426
  notes?: string;
4411
4427
  }
4412
4428
  /**
4413
- * Interface for billing information per zone
4429
+ * Interface for zone item data (products or notes per zone)
4430
+ */
4431
+ interface ZoneItemData {
4432
+ productId?: string;
4433
+ productName?: string;
4434
+ productBrandId?: string;
4435
+ productBrandName?: string;
4436
+ belongingProcedureId: string;
4437
+ type: 'item' | 'note';
4438
+ price?: number;
4439
+ currency?: Currency;
4440
+ unitOfMeasurement?: PricingMeasure;
4441
+ priceOverrideAmount?: number;
4442
+ quantity?: number;
4443
+ parentZone: string;
4444
+ subzones: string[];
4445
+ notes?: string;
4446
+ subtotal?: number;
4447
+ ionNumber?: string;
4448
+ }
4449
+ /**
4450
+ * @deprecated Use ZoneItemData instead
4414
4451
  */
4415
4452
  interface BillingPerZone {
4416
- /** Product name/description */
4417
4453
  Product: string;
4418
- /** Product ID */
4419
4454
  ProductId: string | null;
4420
- /** Quantity used (can be decimal) */
4421
4455
  Quantity: number;
4422
- /** Unit of measurement */
4423
4456
  UnitOfMeasurement: PricingMeasure;
4424
- /** Unit price for the product */
4425
4457
  UnitPrice: number;
4426
- /** Currency for the unit price */
4427
4458
  UnitCurency: Currency;
4428
- /** Calculated subtotal */
4429
4459
  Subtotal: number;
4430
- /** Optional billing note */
4431
4460
  Note: string | null;
4432
- /** Ion/Batch number for traceability */
4433
4461
  IonNumber: string | null;
4434
4462
  }
4435
4463
  /**
@@ -4444,27 +4472,57 @@ interface FinalBilling {
4444
4472
  taxPrice: number;
4445
4473
  /** Final price including tax */
4446
4474
  finalPrice: number;
4447
- /** Total final quantity across all zones */
4448
- finalQuantity: number;
4449
4475
  /** Currency for the final billing */
4450
4476
  currency: Currency;
4451
- /** Unit of measurement for the final billing */
4477
+ }
4478
+ /**
4479
+ * Interface for product metadata in appointment
4480
+ */
4481
+ interface AppointmentProductMetadata {
4482
+ productId: string;
4483
+ productName: string;
4484
+ brandId: string;
4485
+ brandName: string;
4486
+ procedureId: string;
4487
+ price: number;
4488
+ currency: Currency;
4452
4489
  unitOfMeasurement: PricingMeasure;
4453
4490
  }
4491
+ /**
4492
+ * Interface for extended procedures in appointment
4493
+ */
4494
+ interface ExtendedProcedureInfo {
4495
+ procedureId: string;
4496
+ procedureName: string;
4497
+ procedureFamily?: ProcedureFamily;
4498
+ procedureCategoryId: string;
4499
+ procedureCategoryName: string;
4500
+ procedureSubCategoryId: string;
4501
+ procedureSubCategoryName: string;
4502
+ procedureTechnologyId: string;
4503
+ procedureTechnologyName: string;
4504
+ procedureProducts: Array<{
4505
+ productId: string;
4506
+ productName: string;
4507
+ brandId: string;
4508
+ brandName: string;
4509
+ }>;
4510
+ }
4454
4511
  /**
4455
4512
  * Interface for appointment metadata containing zone-specific information
4456
4513
  */
4457
4514
  interface AppointmentMetadata {
4458
- /** Array of selected zones for the appointment */
4459
4515
  selectedZones: string[] | null;
4460
- /** Map of zone photos with before/after images and notes */
4461
4516
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
4462
- /** Map of billing information per zone */
4463
- zoneBilling: Record<string, BillingPerZone> | null;
4464
- /** Final billing calculations for the appointment */
4517
+ zonesData?: Record<string, ZoneItemData[]> | null;
4518
+ appointmentProducts?: AppointmentProductMetadata[];
4519
+ extendedProcedures?: ExtendedProcedureInfo[];
4465
4520
  finalbilling: FinalBilling | null;
4466
- /** Final note for the appointment */
4467
4521
  finalizationNotes: string | null;
4522
+ /**
4523
+ * @deprecated Use zonesData instead
4524
+ */
4525
+ zoneBilling?: Record<string, BillingPerZone> | null;
4468
4526
  }
4469
4527
  /**
4470
4528
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -5084,6 +5142,9 @@ declare class PatientService extends BaseService {
5084
5142
  * @returns {Promise<PatientToken[]>} An array of active tokens for the patient.
5085
5143
  */
5086
5144
  getActiveInviteTokensByPatient(patientId: string): Promise<PatientToken[]>;
5145
+ getAestheticAnalysis(patientId: string): Promise<AestheticAnalysis | null>;
5146
+ createAestheticAnalysis(patientId: string, data: CreateAestheticAnalysisData): Promise<void>;
5147
+ updateAestheticAnalysis(patientId: string, data: UpdateAestheticAnalysisData): Promise<void>;
5087
5148
  }
5088
5149
 
5089
5150
  declare class ClinicAdminService extends BaseService {
@@ -5601,6 +5662,15 @@ declare class ProcedureService extends BaseService {
5601
5662
  latitude: number | undefined;
5602
5663
  longitude: number | undefined;
5603
5664
  }[]>;
5665
+ /**
5666
+ * Gets procedures filtered by clinic and practitioner with optional family filter
5667
+ * @param clinicBranchId Clinic branch ID to filter by
5668
+ * @param practitionerId Practitioner ID to filter by
5669
+ * @param filterByFamily If true, shows only procedures of the same family as the default procedure
5670
+ * @param defaultProcedureId Optional default procedure ID to determine the family
5671
+ * @returns Array of procedures
5672
+ */
5673
+ getProceduresForConsultation(clinicBranchId: string, practitionerId: string, filterByFamily?: boolean, defaultProcedureId?: string): Promise<Procedure[]>;
5604
5674
  }
5605
5675
 
5606
5676
  declare class PractitionerService extends BaseService {
@@ -6104,6 +6174,95 @@ declare class AppointmentService extends BaseService {
6104
6174
  * @returns The updated appointment
6105
6175
  */
6106
6176
  deleteZonePhoto(appointmentId: string, zoneId: string, photoType: 'before' | 'after'): Promise<Appointment>;
6177
+ /**
6178
+ * Adds an item (product or note) to a specific zone
6179
+ *
6180
+ * @param appointmentId ID of the appointment
6181
+ * @param zoneId Zone ID (must be category.zone format, e.g., "face.forehead")
6182
+ * @param item Zone item data to add (without parentZone - it's inferred from zoneId)
6183
+ * @returns The updated appointment
6184
+ */
6185
+ addItemToZone(appointmentId: string, zoneId: string, item: Omit<ZoneItemData, 'subtotal' | 'parentZone'>): Promise<Appointment>;
6186
+ /**
6187
+ * Removes an item from a specific zone
6188
+ *
6189
+ * @param appointmentId ID of the appointment
6190
+ * @param zoneId Zone ID
6191
+ * @param itemIndex Index of the item to remove in the zone's items array
6192
+ * @returns The updated appointment
6193
+ */
6194
+ removeItemFromZone(appointmentId: string, zoneId: string, itemIndex: number): Promise<Appointment>;
6195
+ /**
6196
+ * Updates a specific item in a zone
6197
+ *
6198
+ * @param appointmentId ID of the appointment
6199
+ * @param zoneId Zone ID
6200
+ * @param itemIndex Index of the item to update
6201
+ * @param updates Partial updates to apply to the item
6202
+ * @returns The updated appointment
6203
+ */
6204
+ updateZoneItem(appointmentId: string, zoneId: string, itemIndex: number, updates: Partial<ZoneItemData>): Promise<Appointment>;
6205
+ /**
6206
+ * Overrides the price for a specific zone item
6207
+ *
6208
+ * @param appointmentId ID of the appointment
6209
+ * @param zoneId Zone ID
6210
+ * @param itemIndex Index of the item
6211
+ * @param newPrice New price amount to set
6212
+ * @returns The updated appointment
6213
+ */
6214
+ overridePriceForZoneItem(appointmentId: string, zoneId: string, itemIndex: number, newPrice: number): Promise<Appointment>;
6215
+ /**
6216
+ * Updates subzones for a specific zone item
6217
+ *
6218
+ * @param appointmentId ID of the appointment
6219
+ * @param zoneId Zone ID
6220
+ * @param itemIndex Index of the item
6221
+ * @param subzones Array of subzone keys (category.zone.subzone format)
6222
+ * @returns The updated appointment
6223
+ */
6224
+ updateSubzones(appointmentId: string, zoneId: string, itemIndex: number, subzones: string[]): Promise<Appointment>;
6225
+ /**
6226
+ * Adds an extended procedure to an appointment
6227
+ * Automatically aggregates products into appointmentProducts
6228
+ *
6229
+ * @param appointmentId ID of the appointment
6230
+ * @param procedureId ID of the procedure to add
6231
+ * @returns The updated appointment
6232
+ */
6233
+ addExtendedProcedure(appointmentId: string, procedureId: string): Promise<Appointment>;
6234
+ /**
6235
+ * Removes an extended procedure from an appointment
6236
+ * Also removes associated products from appointmentProducts
6237
+ *
6238
+ * @param appointmentId ID of the appointment
6239
+ * @param procedureId ID of the procedure to remove
6240
+ * @returns The updated appointment
6241
+ */
6242
+ removeExtendedProcedure(appointmentId: string, procedureId: string): Promise<Appointment>;
6243
+ /**
6244
+ * Gets all extended procedures for an appointment
6245
+ *
6246
+ * @param appointmentId ID of the appointment
6247
+ * @returns Array of extended procedures
6248
+ */
6249
+ getExtendedProcedures(appointmentId: string): Promise<ExtendedProcedureInfo[]>;
6250
+ /**
6251
+ * Gets all aggregated products for an appointment
6252
+ * Includes products from main procedure and extended procedures
6253
+ *
6254
+ * @param appointmentId ID of the appointment
6255
+ * @returns Array of appointment products
6256
+ */
6257
+ getAppointmentProducts(appointmentId: string): Promise<AppointmentProductMetadata[]>;
6258
+ /**
6259
+ * Recalculates final billing for an appointment based on zone items
6260
+ *
6261
+ * @param appointmentId ID of the appointment
6262
+ * @param taxRate Tax rate (e.g., 0.20 for 20%)
6263
+ * @returns The updated appointment with recalculated billing
6264
+ */
6265
+ recalculateFinalBilling(appointmentId: string, taxRate?: number): Promise<Appointment>;
6107
6266
  }
6108
6267
 
6109
6268
  declare class UserService extends BaseService {
@@ -7010,4 +7169,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
7010
7169
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
7011
7170
  declare const getFirebaseFunctions: () => Promise<Functions>;
7012
7171
 
7013
- export { AESTHETIC_ANALYSIS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScale, 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 ClinicalFinding, 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, 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 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 RequesterInfo, type Requirement, type RequirementInstructionDueNotification, 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 ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
7172
+ 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 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 RequesterInfo, type Requirement, type RequirementInstructionDueNotification, 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 };