@blackcode_sa/metaestetics-api 1.13.0 → 1.13.1

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
@@ -4026,6 +4026,10 @@ interface AnalyticsFilters {
4026
4026
  * Grouping period for trend analysis
4027
4027
  */
4028
4028
  type GroupingPeriod = 'day' | 'week' | 'month';
4029
+ /**
4030
+ * Trend period type (only predefined periods, no custom)
4031
+ */
4032
+ type TrendPeriod = 'week' | 'month' | 'quarter' | 'year';
4029
4033
  /**
4030
4034
  * Entity type for grouping analytics
4031
4035
  */
@@ -4133,6 +4137,8 @@ interface CancellationMetrics {
4133
4137
  count: number;
4134
4138
  percentage: number;
4135
4139
  }>;
4140
+ practitionerId?: string;
4141
+ practitionerName?: string;
4136
4142
  }
4137
4143
  /**
4138
4144
  * No-Show Metrics
@@ -4145,6 +4151,8 @@ interface NoShowMetrics {
4145
4151
  totalAppointments: number;
4146
4152
  noShowAppointments: number;
4147
4153
  noShowRate: number;
4154
+ practitionerId?: string;
4155
+ practitionerName?: string;
4148
4156
  }
4149
4157
  /**
4150
4158
  * Revenue Metrics
@@ -4174,6 +4182,13 @@ interface RevenueTrend {
4174
4182
  revenue: number;
4175
4183
  appointmentCount: number;
4176
4184
  averageRevenue: number;
4185
+ currency?: string;
4186
+ previousPeriod?: {
4187
+ revenue: number;
4188
+ appointmentCount: number;
4189
+ percentageChange: number;
4190
+ direction: 'up' | 'down' | 'stable';
4191
+ };
4177
4192
  }
4178
4193
  /**
4179
4194
  * Duration Trend
@@ -4187,6 +4202,77 @@ interface DurationTrend {
4187
4202
  averageActualDuration: number;
4188
4203
  averageEfficiency: number;
4189
4204
  appointmentCount: number;
4205
+ previousPeriod?: {
4206
+ averageBookedDuration: number;
4207
+ averageActualDuration: number;
4208
+ averageEfficiency: number;
4209
+ efficiencyPercentageChange: number;
4210
+ direction: 'up' | 'down' | 'stable';
4211
+ };
4212
+ }
4213
+ /**
4214
+ * Appointment Count Trend
4215
+ * Appointment count trends over time
4216
+ */
4217
+ interface AppointmentTrend {
4218
+ period: string;
4219
+ startDate: Date;
4220
+ endDate: Date;
4221
+ totalAppointments: number;
4222
+ completedAppointments: number;
4223
+ canceledAppointments: number;
4224
+ noShowAppointments: number;
4225
+ pendingAppointments: number;
4226
+ confirmedAppointments: number;
4227
+ previousPeriod?: {
4228
+ totalAppointments: number;
4229
+ completedAppointments: number;
4230
+ percentageChange: number;
4231
+ direction: 'up' | 'down' | 'stable';
4232
+ };
4233
+ }
4234
+ /**
4235
+ * Cancellation Rate Trend
4236
+ * Cancellation and no-show rate trends over time
4237
+ */
4238
+ interface CancellationRateTrend {
4239
+ period: string;
4240
+ startDate: Date;
4241
+ endDate: Date;
4242
+ cancellationRate: number;
4243
+ noShowRate: number;
4244
+ totalAppointments: number;
4245
+ canceledAppointments: number;
4246
+ noShowAppointments: number;
4247
+ previousPeriod?: {
4248
+ cancellationRate: number;
4249
+ noShowRate: number;
4250
+ cancellationRateChange: number;
4251
+ noShowRateChange: number;
4252
+ direction: 'up' | 'down' | 'stable';
4253
+ };
4254
+ }
4255
+ /**
4256
+ * Review Trend
4257
+ * Review rating and recommendation trends over time
4258
+ */
4259
+ interface ReviewTrend {
4260
+ period: string;
4261
+ startDate: Date;
4262
+ endDate: Date;
4263
+ averageRating: number;
4264
+ recommendationRate: number;
4265
+ totalReviews: number;
4266
+ practitionerAverage?: number;
4267
+ procedureAverage?: number;
4268
+ previousPeriod?: {
4269
+ averageRating: number;
4270
+ recommendationRate: number;
4271
+ percentageChange: number;
4272
+ direction: 'up' | 'down' | 'stable';
4273
+ };
4274
+ entityId?: string;
4275
+ entityName?: string;
4190
4276
  }
4191
4277
  /**
4192
4278
  * Product Usage Metrics
@@ -4592,6 +4678,18 @@ interface GroupedAnalyticsBase {
4592
4678
  entityName: string;
4593
4679
  entityType: EntityType;
4594
4680
  }
4681
+ /**
4682
+ * Review metrics for grouped analytics
4683
+ * Note: This is a simplified version for grouped analytics.
4684
+ * For full review analytics, see ReviewAnalyticsService.ReviewMetrics
4685
+ */
4686
+ interface ReviewMetrics {
4687
+ totalReviews: number;
4688
+ averageRating: number;
4689
+ recommendationRate: number;
4690
+ ratingDifference?: number;
4691
+ recommendationDifference?: number;
4692
+ }
4595
4693
  /**
4596
4694
  * Grouped Revenue Metrics
4597
4695
  * Revenue analytics grouped by clinic, practitioner, procedure, or patient
@@ -4606,6 +4704,9 @@ interface GroupedRevenueMetrics extends GroupedAnalyticsBase {
4606
4704
  refundedRevenue: number;
4607
4705
  totalTax: number;
4608
4706
  totalSubtotal: number;
4707
+ practitionerId?: string;
4708
+ practitionerName?: string;
4709
+ reviewMetrics?: ReviewMetrics;
4609
4710
  }
4610
4711
  /**
4611
4712
  * Grouped Product Usage Metrics
@@ -4625,6 +4726,8 @@ interface GroupedProductUsageMetrics extends GroupedAnalyticsBase {
4625
4726
  totalRevenue: number;
4626
4727
  usageCount: number;
4627
4728
  }>;
4729
+ practitionerId?: string;
4730
+ practitionerName?: string;
4628
4731
  }
4629
4732
  /**
4630
4733
  * Grouped Patient Retention Metrics
@@ -4656,6 +4759,8 @@ interface GroupedTimeEfficiencyMetrics extends GroupedAnalyticsBase {
4656
4759
  totalUnderutilization: number;
4657
4760
  averageOverrun: number;
4658
4761
  averageUnderutilization: number;
4762
+ practitionerId?: string;
4763
+ practitionerName?: string;
4659
4764
  }
4660
4765
  /**
4661
4766
  * Grouped Patient Behavior Metrics
@@ -7536,6 +7641,131 @@ declare class AppointmentService extends BaseService {
7536
7641
  }): Promise<NextStepsRecommendation[]>;
7537
7642
  }
7538
7643
 
7644
+ /**
7645
+ * Review metrics for a specific entity (practitioner, procedure, etc.)
7646
+ * Full review analytics metrics with detailed breakdowns
7647
+ */
7648
+ interface ReviewAnalyticsMetrics {
7649
+ entityId: string;
7650
+ entityName: string;
7651
+ entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology';
7652
+ totalReviews: number;
7653
+ averageRating: number;
7654
+ recommendationRate: number;
7655
+ practitionerMetrics?: {
7656
+ averageKnowledgeAndExpertise: number;
7657
+ averageCommunicationSkills: number;
7658
+ averageBedSideManner: number;
7659
+ averageThoroughness: number;
7660
+ averageTrustworthiness: number;
7661
+ };
7662
+ procedureMetrics?: {
7663
+ averageEffectiveness: number;
7664
+ averageOutcomeExplanation: number;
7665
+ averagePainManagement: number;
7666
+ averageFollowUpCare: number;
7667
+ averageValueForMoney: number;
7668
+ };
7669
+ comparisonToOverall: {
7670
+ ratingDifference: number;
7671
+ recommendationDifference: number;
7672
+ };
7673
+ }
7674
+ /**
7675
+ * Review detail with full information
7676
+ */
7677
+ interface ReviewDetail {
7678
+ reviewId: string;
7679
+ appointmentId: string;
7680
+ patientId: string;
7681
+ patientName?: string;
7682
+ createdAt: Date;
7683
+ practitionerReview?: PractitionerReview;
7684
+ procedureReview?: ProcedureReview;
7685
+ procedureName?: string;
7686
+ practitionerName?: string;
7687
+ appointmentDate: Date;
7688
+ }
7689
+ /**
7690
+ * Overall review averages for comparison
7691
+ */
7692
+ interface OverallReviewAverages {
7693
+ practitionerAverage: {
7694
+ totalReviews: number;
7695
+ averageRating: number;
7696
+ recommendationRate: number;
7697
+ averageKnowledgeAndExpertise: number;
7698
+ averageCommunicationSkills: number;
7699
+ averageBedSideManner: number;
7700
+ averageThoroughness: number;
7701
+ averageTrustworthiness: number;
7702
+ };
7703
+ procedureAverage: {
7704
+ totalReviews: number;
7705
+ averageRating: number;
7706
+ recommendationRate: number;
7707
+ averageEffectiveness: number;
7708
+ averageOutcomeExplanation: number;
7709
+ averagePainManagement: number;
7710
+ averageFollowUpCare: number;
7711
+ averageValueForMoney: number;
7712
+ };
7713
+ }
7714
+ /**
7715
+ * Review Analytics Service
7716
+ * Provides review metrics and analytics for practitioners, procedures, categories, and technologies
7717
+ */
7718
+ declare class ReviewAnalyticsService extends BaseService {
7719
+ private appointmentService;
7720
+ constructor(db: Firestore, auth: any, app: any, appointmentService?: AppointmentService);
7721
+ /**
7722
+ * Fetches reviews filtered by date range and optional filters
7723
+ * Properly filters by clinic branch by checking appointment's clinicId
7724
+ */
7725
+ private fetchReviews;
7726
+ /**
7727
+ * Gets review metrics for a specific entity
7728
+ */
7729
+ getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
7730
+ /**
7731
+ * Gets review metrics for multiple entities (grouped)
7732
+ */
7733
+ getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
7734
+ /**
7735
+ * Calculates review metrics from a list of reviews
7736
+ */
7737
+ private calculateReviewMetrics;
7738
+ /**
7739
+ * Gets overall review averages for comparison
7740
+ */
7741
+ getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
7742
+ /**
7743
+ * Gets review details for a specific entity
7744
+ */
7745
+ getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
7746
+ /**
7747
+ * Helper method to calculate average
7748
+ */
7749
+ private calculateAverage;
7750
+ /**
7751
+ * Calculate review trends over time
7752
+ * Groups reviews by period and calculates rating and recommendation metrics
7753
+ *
7754
+ * @param dateRange - Date range for trend analysis (must align with period boundaries)
7755
+ * @param period - Period type (week, month, quarter, year)
7756
+ * @param filters - Optional filters for clinic, practitioner, procedure
7757
+ * @param entityType - Optional entity type to group trends by (practitioner, procedure, technology)
7758
+ * @returns Array of review trends with percentage changes
7759
+ */
7760
+ getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
7761
+ /**
7762
+ * Calculate grouped review trends (by practitioner, procedure, or technology)
7763
+ * Returns the AVERAGE across all entities of that type for each period
7764
+ * @private
7765
+ */
7766
+ private getGroupedReviewTrends;
7767
+ }
7768
+
7539
7769
  /**
7540
7770
  * AnalyticsService provides comprehensive financial and analytical intelligence
7541
7771
  * for the Clinic Admin app, including metrics about doctors, procedures,
@@ -7543,6 +7773,7 @@ declare class AppointmentService extends BaseService {
7543
7773
  */
7544
7774
  declare class AnalyticsService extends BaseService {
7545
7775
  private appointmentService;
7776
+ private reviewAnalyticsService;
7546
7777
  /**
7547
7778
  * Creates a new AnalyticsService instance.
7548
7779
  *
@@ -7702,6 +7933,10 @@ declare class AnalyticsService extends BaseService {
7702
7933
  * Get revenue metrics
7703
7934
  * First checks for stored analytics, then calculates if not available or stale
7704
7935
  *
7936
+ * IMPORTANT: Financial calculations only consider COMPLETED appointments.
7937
+ * Confirmed, pending, canceled, and no-show appointments are NOT included in revenue calculations.
7938
+ * Only procedures that have been completed generate revenue.
7939
+ *
7705
7940
  * @param filters - Optional filters
7706
7941
  * @param dateRange - Optional date range filter
7707
7942
  * @param options - Options for reading stored analytics
@@ -7720,11 +7955,16 @@ declare class AnalyticsService extends BaseService {
7720
7955
  /**
7721
7956
  * Get product usage metrics
7722
7957
  *
7958
+ * IMPORTANT: Only COMPLETED appointments are included in product usage calculations.
7959
+ * Products are only considered "used" when the procedure has been completed.
7960
+ * Confirmed, pending, canceled, and no-show appointments are excluded from product metrics.
7961
+ *
7723
7962
  * @param productId - Optional product ID (if not provided, returns all products)
7724
7963
  * @param dateRange - Optional date range filter
7964
+ * @param filters - Optional filters (e.g., clinicBranchId)
7725
7965
  * @returns Product usage metrics
7726
7966
  */
7727
- getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
7967
+ getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
7728
7968
  /**
7729
7969
  * Get patient behavior metrics grouped by clinic, practitioner, procedure, or technology
7730
7970
  * Shows patient no-show and cancellation patterns per entity
@@ -7761,6 +8001,78 @@ declare class AnalyticsService extends BaseService {
7761
8001
  * @returns Complete dashboard analytics
7762
8002
  */
7763
8003
  getDashboardData(filters?: AnalyticsFilters, dateRange?: AnalyticsDateRange, options?: ReadStoredAnalyticsOptions): Promise<DashboardAnalytics>;
8004
+ /**
8005
+ * Calculate revenue trends over time
8006
+ * Groups appointments by week/month/quarter/year and calculates revenue metrics
8007
+ *
8008
+ * @param dateRange - Date range for trend analysis (must align with period boundaries)
8009
+ * @param period - Period type (week, month, quarter, year)
8010
+ * @param filters - Optional filters for clinic, practitioner, procedure, patient
8011
+ * @param groupBy - Optional entity type to group trends by (clinic, practitioner, procedure, technology, patient)
8012
+ * @returns Array of revenue trends with percentage changes
8013
+ */
8014
+ getRevenueTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<RevenueTrend[]>;
8015
+ /**
8016
+ * Calculate revenue trends grouped by entity
8017
+ */
8018
+ private getGroupedRevenueTrends;
8019
+ /**
8020
+ * Calculate duration/efficiency trends over time
8021
+ *
8022
+ * @param dateRange - Date range for trend analysis
8023
+ * @param period - Period type (week, month, quarter, year)
8024
+ * @param filters - Optional filters
8025
+ * @param groupBy - Optional entity type to group trends by
8026
+ * @returns Array of duration trends with percentage changes
8027
+ */
8028
+ getDurationTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<DurationTrend[]>;
8029
+ /**
8030
+ * Calculate appointment count trends over time
8031
+ *
8032
+ * @param dateRange - Date range for trend analysis
8033
+ * @param period - Period type (week, month, quarter, year)
8034
+ * @param filters - Optional filters
8035
+ * @param groupBy - Optional entity type to group trends by
8036
+ * @returns Array of appointment trends with percentage changes
8037
+ */
8038
+ getAppointmentTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<AppointmentTrend[]>;
8039
+ /**
8040
+ * Calculate cancellation and no-show rate trends over time
8041
+ *
8042
+ * @param dateRange - Date range for trend analysis
8043
+ * @param period - Period type (week, month, quarter, year)
8044
+ * @param filters - Optional filters
8045
+ * @param groupBy - Optional entity type to group trends by
8046
+ * @returns Array of cancellation rate trends with percentage changes
8047
+ */
8048
+ getCancellationRateTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<CancellationRateTrend[]>;
8049
+ /**
8050
+ * Get review metrics for a specific entity (practitioner, procedure, etc.)
8051
+ */
8052
+ getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
8053
+ /**
8054
+ * Get review metrics for multiple entities (grouped)
8055
+ */
8056
+ getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
8057
+ /**
8058
+ * Get overall review averages for comparison
8059
+ */
8060
+ getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
8061
+ /**
8062
+ * Get review details for a specific entity
8063
+ */
8064
+ getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
8065
+ /**
8066
+ * Calculate review trends over time
8067
+ * Groups reviews by period and calculates rating and recommendation metrics
8068
+ *
8069
+ * @param dateRange - Date range for trend analysis
8070
+ * @param period - Period type (week, month, quarter, year)
8071
+ * @param filters - Optional filters for clinic, practitioner, procedure
8072
+ * @param entityType - Optional entity type to group trends by
8073
+ * @returns Array of review trends with percentage changes
8074
+ */
8075
+ getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
7764
8076
  }
7765
8077
 
7766
8078
  /**
@@ -8670,6 +8982,18 @@ declare class PatientRequirementsService extends BaseService {
8670
8982
 
8671
8983
  declare class ReviewService extends BaseService {
8672
8984
  constructor(db: Firestore, auth: Auth, app: FirebaseApp);
8985
+ /**
8986
+ * Helper function to convert Firestore Timestamps to Date objects
8987
+ * @param timestamp The timestamp to convert
8988
+ * @returns A JavaScript Date object or null
8989
+ */
8990
+ private convertTimestamp;
8991
+ /**
8992
+ * Converts a Firestore document to a Review object with proper date handling
8993
+ * @param docData The raw Firestore document data
8994
+ * @returns A Review object with properly converted dates
8995
+ */
8996
+ private convertDocToReview;
8673
8997
  /**
8674
8998
  * Creates a new review
8675
8999
  * @param data - The review data to create
@@ -8750,4 +9074,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
8750
9074
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
8751
9075
  declare const getFirebaseFunctions: () => Promise<Functions>;
8752
9076
 
8753
- export { AESTHETIC_ANALYSIS_COLLECTION, ANALYTICS_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, AnalyticsCloudService, type AnalyticsDateRange, type AnalyticsFilters, type AnalyticsMetadata, type AnalyticsPeriod, AnalyticsService, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseMetrics, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CANCELLATION_ANALYTICS_SUBCOLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_ANALYTICS_SUBCOLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type CancellationMetrics, type CancellationReasonStats, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicAnalytics, type ClinicBranchSetupData, type ClinicComparisonMetrics, 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 CostPerPatientMetrics, 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, DASHBOARD_ANALYTICS_SUBCOLLECTION, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DashboardAnalytics, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DurationTrend, type DynamicTextElement, DynamicVariable, type EmergencyContact, type EntityType, 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 GroupedAnalyticsBase, type GroupedPatientBehaviorMetrics, type GroupedPatientRetentionMetrics, type GroupedPractitionerPerformanceMetrics, type GroupedProcedurePerformanceMetrics, type GroupedProductUsageMetrics, type GroupedRevenueMetrics, type GroupedTimeEfficiencyMetrics, type GroupingPeriod, 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, NO_SHOW_ANALYTICS_SUBCOLLECTION, type NextStepsRecommendation, type NoShowMetrics, 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_ANALYTICS_SUBCOLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, PROCEDURE_ANALYTICS_SUBCOLLECTION, type ParagraphElement, type PatientAnalytics, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLifetimeValueMetrics, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientRetentionMetrics, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PaymentStatusBreakdown, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerAnalytics, 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 ProcedureAnalytics, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedurePopularity, type ProcedureProduct, type ProcedureProfitability, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, type ProductRevenueMetrics, ProductService, type ProductUsageByProcedure, type ProductUsageMetrics, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVENUE_ANALYTICS_SUBCOLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type ReadStoredAnalyticsOptions, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type RevenueMetrics, type RevenueTrend, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StoredCancellationMetrics, type StoredClinicAnalytics, type StoredDashboardAnalytics, type StoredNoShowMetrics, type StoredPractitionerAnalytics, type StoredProcedureAnalytics, type StoredRevenueMetrics, type StoredTimeEfficiencyMetrics, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, TIME_EFFICIENCY_ANALYTICS_SUBCOLLECTION, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeEfficiencyMetrics, 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 };
9077
+ export { AESTHETIC_ANALYSIS_COLLECTION, ANALYTICS_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, AnalyticsCloudService, type AnalyticsDateRange, type AnalyticsFilters, type AnalyticsMetadata, type AnalyticsPeriod, AnalyticsService, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AppointmentTrend, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseMetrics, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CANCELLATION_ANALYTICS_SUBCOLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_ANALYTICS_SUBCOLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type CancellationMetrics, type CancellationRateTrend, type CancellationReasonStats, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicAnalytics, type ClinicBranchSetupData, type ClinicComparisonMetrics, 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 CostPerPatientMetrics, 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, DASHBOARD_ANALYTICS_SUBCOLLECTION, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DashboardAnalytics, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DurationTrend, type DynamicTextElement, DynamicVariable, type EmergencyContact, type EntityType, 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 GroupedAnalyticsBase, type GroupedPatientBehaviorMetrics, type GroupedPatientRetentionMetrics, type GroupedPractitionerPerformanceMetrics, type GroupedProcedurePerformanceMetrics, type GroupedProductUsageMetrics, type GroupedRevenueMetrics, type GroupedTimeEfficiencyMetrics, type GroupingPeriod, 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, NO_SHOW_ANALYTICS_SUBCOLLECTION, type NextStepsRecommendation, type NoShowMetrics, type Notification, NotificationService, NotificationStatus, NotificationType, type OverallReviewAverages, 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_ANALYTICS_SUBCOLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, PROCEDURE_ANALYTICS_SUBCOLLECTION, type ParagraphElement, type PatientAnalytics, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLifetimeValueMetrics, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientRetentionMetrics, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PaymentStatusBreakdown, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerAnalytics, 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 ProcedureAnalytics, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedurePopularity, type ProcedureProduct, type ProcedureProfitability, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, type ProductRevenueMetrics, ProductService, type ProductUsageByProcedure, type ProductUsageMetrics, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVENUE_ANALYTICS_SUBCOLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type ReadStoredAnalyticsOptions, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type RevenueMetrics, type RevenueTrend, type Review, type ReviewAnalyticsMetrics, ReviewAnalyticsService, type ReviewDetail, type ReviewMetrics, type ReviewRequestNotification, ReviewService, type ReviewTrend, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StoredCancellationMetrics, type StoredClinicAnalytics, type StoredDashboardAnalytics, type StoredNoShowMetrics, type StoredPractitionerAnalytics, type StoredProcedureAnalytics, type StoredRevenueMetrics, type StoredTimeEfficiencyMetrics, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, TIME_EFFICIENCY_ANALYTICS_SUBCOLLECTION, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeEfficiencyMetrics, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, type TrendPeriod, 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 };