@blackcode_sa/metaestetics-api 1.12.32 → 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.mts CHANGED
@@ -4371,8 +4371,12 @@ interface ProcedureExtendedInfo {
4371
4371
  procedureTechnologyName: string;
4372
4372
  procedureProductBrandId: string;
4373
4373
  procedureProductBrandName: string;
4374
- procedureProductId: string;
4375
- procedureProductName: string;
4374
+ procedureProducts: Array<{
4375
+ productId: string;
4376
+ productName: string;
4377
+ brandId: string;
4378
+ brandName: string;
4379
+ }>;
4376
4380
  }
4377
4381
  /**
4378
4382
  * Interface to describe a filled form linked to an appointment.
@@ -4422,26 +4426,38 @@ interface ZonePhotoUploadData {
4422
4426
  notes?: string;
4423
4427
  }
4424
4428
  /**
4425
- * 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
4426
4451
  */
4427
4452
  interface BillingPerZone {
4428
- /** Product name/description */
4429
4453
  Product: string;
4430
- /** Product ID */
4431
4454
  ProductId: string | null;
4432
- /** Quantity used (can be decimal) */
4433
4455
  Quantity: number;
4434
- /** Unit of measurement */
4435
4456
  UnitOfMeasurement: PricingMeasure;
4436
- /** Unit price for the product */
4437
4457
  UnitPrice: number;
4438
- /** Currency for the unit price */
4439
4458
  UnitCurency: Currency;
4440
- /** Calculated subtotal */
4441
4459
  Subtotal: number;
4442
- /** Optional billing note */
4443
4460
  Note: string | null;
4444
- /** Ion/Batch number for traceability */
4445
4461
  IonNumber: string | null;
4446
4462
  }
4447
4463
  /**
@@ -4456,27 +4472,57 @@ interface FinalBilling {
4456
4472
  taxPrice: number;
4457
4473
  /** Final price including tax */
4458
4474
  finalPrice: number;
4459
- /** Total final quantity across all zones */
4460
- finalQuantity: number;
4461
4475
  /** Currency for the final billing */
4462
4476
  currency: Currency;
4463
- /** 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;
4464
4489
  unitOfMeasurement: PricingMeasure;
4465
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
+ }
4466
4511
  /**
4467
4512
  * Interface for appointment metadata containing zone-specific information
4468
4513
  */
4469
4514
  interface AppointmentMetadata {
4470
- /** Array of selected zones for the appointment */
4471
4515
  selectedZones: string[] | null;
4472
- /** Map of zone photos with before/after images and notes */
4473
4516
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
4474
- /** Map of billing information per zone */
4475
- zoneBilling: Record<string, BillingPerZone> | null;
4476
- /** Final billing calculations for the appointment */
4517
+ zonesData?: Record<string, ZoneItemData[]> | null;
4518
+ appointmentProducts?: AppointmentProductMetadata[];
4519
+ extendedProcedures?: ExtendedProcedureInfo[];
4477
4520
  finalbilling: FinalBilling | null;
4478
- /** Final note for the appointment */
4479
4521
  finalizationNotes: string | null;
4522
+ /**
4523
+ * @deprecated Use zonesData instead
4524
+ */
4525
+ zoneBilling?: Record<string, BillingPerZone> | null;
4480
4526
  }
4481
4527
  /**
4482
4528
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -5096,6 +5142,9 @@ declare class PatientService extends BaseService {
5096
5142
  * @returns {Promise<PatientToken[]>} An array of active tokens for the patient.
5097
5143
  */
5098
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>;
5099
5148
  }
5100
5149
 
5101
5150
  declare class ClinicAdminService extends BaseService {
@@ -5613,6 +5662,15 @@ declare class ProcedureService extends BaseService {
5613
5662
  latitude: number | undefined;
5614
5663
  longitude: number | undefined;
5615
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[]>;
5616
5674
  }
5617
5675
 
5618
5676
  declare class PractitionerService extends BaseService {
@@ -6116,6 +6174,95 @@ declare class AppointmentService extends BaseService {
6116
6174
  * @returns The updated appointment
6117
6175
  */
6118
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>;
6119
6266
  }
6120
6267
 
6121
6268
  declare class UserService extends BaseService {
@@ -7022,4 +7169,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
7022
7169
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
7023
7170
  declare const getFirebaseFunctions: () => Promise<Functions>;
7024
7171
 
7025
- 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 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, 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 };
package/dist/index.d.ts CHANGED
@@ -4371,8 +4371,12 @@ interface ProcedureExtendedInfo {
4371
4371
  procedureTechnologyName: string;
4372
4372
  procedureProductBrandId: string;
4373
4373
  procedureProductBrandName: string;
4374
- procedureProductId: string;
4375
- procedureProductName: string;
4374
+ procedureProducts: Array<{
4375
+ productId: string;
4376
+ productName: string;
4377
+ brandId: string;
4378
+ brandName: string;
4379
+ }>;
4376
4380
  }
4377
4381
  /**
4378
4382
  * Interface to describe a filled form linked to an appointment.
@@ -4422,26 +4426,38 @@ interface ZonePhotoUploadData {
4422
4426
  notes?: string;
4423
4427
  }
4424
4428
  /**
4425
- * 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
4426
4451
  */
4427
4452
  interface BillingPerZone {
4428
- /** Product name/description */
4429
4453
  Product: string;
4430
- /** Product ID */
4431
4454
  ProductId: string | null;
4432
- /** Quantity used (can be decimal) */
4433
4455
  Quantity: number;
4434
- /** Unit of measurement */
4435
4456
  UnitOfMeasurement: PricingMeasure;
4436
- /** Unit price for the product */
4437
4457
  UnitPrice: number;
4438
- /** Currency for the unit price */
4439
4458
  UnitCurency: Currency;
4440
- /** Calculated subtotal */
4441
4459
  Subtotal: number;
4442
- /** Optional billing note */
4443
4460
  Note: string | null;
4444
- /** Ion/Batch number for traceability */
4445
4461
  IonNumber: string | null;
4446
4462
  }
4447
4463
  /**
@@ -4456,27 +4472,57 @@ interface FinalBilling {
4456
4472
  taxPrice: number;
4457
4473
  /** Final price including tax */
4458
4474
  finalPrice: number;
4459
- /** Total final quantity across all zones */
4460
- finalQuantity: number;
4461
4475
  /** Currency for the final billing */
4462
4476
  currency: Currency;
4463
- /** 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;
4464
4489
  unitOfMeasurement: PricingMeasure;
4465
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
+ }
4466
4511
  /**
4467
4512
  * Interface for appointment metadata containing zone-specific information
4468
4513
  */
4469
4514
  interface AppointmentMetadata {
4470
- /** Array of selected zones for the appointment */
4471
4515
  selectedZones: string[] | null;
4472
- /** Map of zone photos with before/after images and notes */
4473
4516
  zonePhotos: Record<string, BeforeAfterPerZone> | null;
4474
- /** Map of billing information per zone */
4475
- zoneBilling: Record<string, BillingPerZone> | null;
4476
- /** Final billing calculations for the appointment */
4517
+ zonesData?: Record<string, ZoneItemData[]> | null;
4518
+ appointmentProducts?: AppointmentProductMetadata[];
4519
+ extendedProcedures?: ExtendedProcedureInfo[];
4477
4520
  finalbilling: FinalBilling | null;
4478
- /** Final note for the appointment */
4479
4521
  finalizationNotes: string | null;
4522
+ /**
4523
+ * @deprecated Use zonesData instead
4524
+ */
4525
+ zoneBilling?: Record<string, BillingPerZone> | null;
4480
4526
  }
4481
4527
  /**
4482
4528
  * Represents a booked appointment, aggregating key information and relevant procedure rules.
@@ -5096,6 +5142,9 @@ declare class PatientService extends BaseService {
5096
5142
  * @returns {Promise<PatientToken[]>} An array of active tokens for the patient.
5097
5143
  */
5098
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>;
5099
5148
  }
5100
5149
 
5101
5150
  declare class ClinicAdminService extends BaseService {
@@ -5613,6 +5662,15 @@ declare class ProcedureService extends BaseService {
5613
5662
  latitude: number | undefined;
5614
5663
  longitude: number | undefined;
5615
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[]>;
5616
5674
  }
5617
5675
 
5618
5676
  declare class PractitionerService extends BaseService {
@@ -6116,6 +6174,95 @@ declare class AppointmentService extends BaseService {
6116
6174
  * @returns The updated appointment
6117
6175
  */
6118
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>;
6119
6266
  }
6120
6267
 
6121
6268
  declare class UserService extends BaseService {
@@ -7022,4 +7169,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
7022
7169
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
7023
7170
  declare const getFirebaseFunctions: () => Promise<Functions>;
7024
7171
 
7025
- 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 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, 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 };