@blackcode_sa/metaestetics-api 1.13.0 → 1.13.2

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
@@ -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
@@ -6631,6 +6736,40 @@ declare class ProcedureService extends BaseService {
6631
6736
  * @returns The created procedure
6632
6737
  */
6633
6738
  createProcedure(data: CreateProcedureData): Promise<Procedure>;
6739
+ /**
6740
+ * Validates if a practitioner can perform a procedure based on certification requirements.
6741
+ *
6742
+ * @param procedure - The procedure to check
6743
+ * @param practitioner - The practitioner to validate
6744
+ * @returns true if practitioner can perform the procedure, false otherwise
6745
+ */
6746
+ canPractitionerPerformProcedure(procedure: Procedure, practitioner: Practitioner): boolean;
6747
+ /**
6748
+ * Clones an existing procedure for a target practitioner.
6749
+ * This creates a new procedure document with the same data as the source procedure,
6750
+ * but linked to the target practitioner.
6751
+ *
6752
+ * @param sourceProcedureId - The ID of the procedure to clone
6753
+ * @param targetPractitionerId - The ID of the practitioner to assign the cloned procedure to
6754
+ * @param overrides - Optional overrides for the new procedure (e.g. price, duration, isActive)
6755
+ * @returns The newly created procedure
6756
+ */
6757
+ cloneProcedureForPractitioner(sourceProcedureId: string, targetPractitionerId: string, overrides?: Partial<CreateProcedureData> & {
6758
+ isActive?: boolean;
6759
+ }): Promise<Procedure>;
6760
+ /**
6761
+ * Clones an existing procedure for multiple target practitioners.
6762
+ * This creates new procedure documents with the same data as the source procedure,
6763
+ * but linked to each target practitioner.
6764
+ *
6765
+ * @param sourceProcedureId - The ID of the procedure to clone
6766
+ * @param targetPractitionerIds - Array of practitioner IDs to assign the cloned procedure to
6767
+ * @param overrides - Optional overrides for the new procedures (e.g. price, duration, isActive)
6768
+ * @returns Array of newly created procedures
6769
+ */
6770
+ bulkCloneProcedureForPractitioners(sourceProcedureId: string, targetPractitionerIds: string[], overrides?: Partial<CreateProcedureData> & {
6771
+ isActive?: boolean;
6772
+ }): Promise<Procedure[]>;
6634
6773
  /**
6635
6774
  * Creates multiple procedures for a list of practitioners based on common data.
6636
6775
  * This method is optimized for bulk creation to reduce database reads and writes.
@@ -7536,6 +7675,131 @@ declare class AppointmentService extends BaseService {
7536
7675
  }): Promise<NextStepsRecommendation[]>;
7537
7676
  }
7538
7677
 
7678
+ /**
7679
+ * Review metrics for a specific entity (practitioner, procedure, etc.)
7680
+ * Full review analytics metrics with detailed breakdowns
7681
+ */
7682
+ interface ReviewAnalyticsMetrics {
7683
+ entityId: string;
7684
+ entityName: string;
7685
+ entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology';
7686
+ totalReviews: number;
7687
+ averageRating: number;
7688
+ recommendationRate: number;
7689
+ practitionerMetrics?: {
7690
+ averageKnowledgeAndExpertise: number;
7691
+ averageCommunicationSkills: number;
7692
+ averageBedSideManner: number;
7693
+ averageThoroughness: number;
7694
+ averageTrustworthiness: number;
7695
+ };
7696
+ procedureMetrics?: {
7697
+ averageEffectiveness: number;
7698
+ averageOutcomeExplanation: number;
7699
+ averagePainManagement: number;
7700
+ averageFollowUpCare: number;
7701
+ averageValueForMoney: number;
7702
+ };
7703
+ comparisonToOverall: {
7704
+ ratingDifference: number;
7705
+ recommendationDifference: number;
7706
+ };
7707
+ }
7708
+ /**
7709
+ * Review detail with full information
7710
+ */
7711
+ interface ReviewDetail {
7712
+ reviewId: string;
7713
+ appointmentId: string;
7714
+ patientId: string;
7715
+ patientName?: string;
7716
+ createdAt: Date;
7717
+ practitionerReview?: PractitionerReview;
7718
+ procedureReview?: ProcedureReview;
7719
+ procedureName?: string;
7720
+ practitionerName?: string;
7721
+ appointmentDate: Date;
7722
+ }
7723
+ /**
7724
+ * Overall review averages for comparison
7725
+ */
7726
+ interface OverallReviewAverages {
7727
+ practitionerAverage: {
7728
+ totalReviews: number;
7729
+ averageRating: number;
7730
+ recommendationRate: number;
7731
+ averageKnowledgeAndExpertise: number;
7732
+ averageCommunicationSkills: number;
7733
+ averageBedSideManner: number;
7734
+ averageThoroughness: number;
7735
+ averageTrustworthiness: number;
7736
+ };
7737
+ procedureAverage: {
7738
+ totalReviews: number;
7739
+ averageRating: number;
7740
+ recommendationRate: number;
7741
+ averageEffectiveness: number;
7742
+ averageOutcomeExplanation: number;
7743
+ averagePainManagement: number;
7744
+ averageFollowUpCare: number;
7745
+ averageValueForMoney: number;
7746
+ };
7747
+ }
7748
+ /**
7749
+ * Review Analytics Service
7750
+ * Provides review metrics and analytics for practitioners, procedures, categories, and technologies
7751
+ */
7752
+ declare class ReviewAnalyticsService extends BaseService {
7753
+ private appointmentService;
7754
+ constructor(db: Firestore, auth: any, app: any, appointmentService?: AppointmentService);
7755
+ /**
7756
+ * Fetches reviews filtered by date range and optional filters
7757
+ * Properly filters by clinic branch by checking appointment's clinicId
7758
+ */
7759
+ private fetchReviews;
7760
+ /**
7761
+ * Gets review metrics for a specific entity
7762
+ */
7763
+ getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
7764
+ /**
7765
+ * Gets review metrics for multiple entities (grouped)
7766
+ */
7767
+ getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
7768
+ /**
7769
+ * Calculates review metrics from a list of reviews
7770
+ */
7771
+ private calculateReviewMetrics;
7772
+ /**
7773
+ * Gets overall review averages for comparison
7774
+ */
7775
+ getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
7776
+ /**
7777
+ * Gets review details for a specific entity
7778
+ */
7779
+ getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
7780
+ /**
7781
+ * Helper method to calculate average
7782
+ */
7783
+ private calculateAverage;
7784
+ /**
7785
+ * Calculate review trends over time
7786
+ * Groups reviews by period and calculates rating and recommendation metrics
7787
+ *
7788
+ * @param dateRange - Date range for trend analysis (must align with period boundaries)
7789
+ * @param period - Period type (week, month, quarter, year)
7790
+ * @param filters - Optional filters for clinic, practitioner, procedure
7791
+ * @param entityType - Optional entity type to group trends by (practitioner, procedure, technology)
7792
+ * @returns Array of review trends with percentage changes
7793
+ */
7794
+ getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
7795
+ /**
7796
+ * Calculate grouped review trends (by practitioner, procedure, or technology)
7797
+ * Returns the AVERAGE across all entities of that type for each period
7798
+ * @private
7799
+ */
7800
+ private getGroupedReviewTrends;
7801
+ }
7802
+
7539
7803
  /**
7540
7804
  * AnalyticsService provides comprehensive financial and analytical intelligence
7541
7805
  * for the Clinic Admin app, including metrics about doctors, procedures,
@@ -7543,6 +7807,7 @@ declare class AppointmentService extends BaseService {
7543
7807
  */
7544
7808
  declare class AnalyticsService extends BaseService {
7545
7809
  private appointmentService;
7810
+ private reviewAnalyticsService;
7546
7811
  /**
7547
7812
  * Creates a new AnalyticsService instance.
7548
7813
  *
@@ -7702,6 +7967,10 @@ declare class AnalyticsService extends BaseService {
7702
7967
  * Get revenue metrics
7703
7968
  * First checks for stored analytics, then calculates if not available or stale
7704
7969
  *
7970
+ * IMPORTANT: Financial calculations only consider COMPLETED appointments.
7971
+ * Confirmed, pending, canceled, and no-show appointments are NOT included in revenue calculations.
7972
+ * Only procedures that have been completed generate revenue.
7973
+ *
7705
7974
  * @param filters - Optional filters
7706
7975
  * @param dateRange - Optional date range filter
7707
7976
  * @param options - Options for reading stored analytics
@@ -7720,11 +7989,16 @@ declare class AnalyticsService extends BaseService {
7720
7989
  /**
7721
7990
  * Get product usage metrics
7722
7991
  *
7992
+ * IMPORTANT: Only COMPLETED appointments are included in product usage calculations.
7993
+ * Products are only considered "used" when the procedure has been completed.
7994
+ * Confirmed, pending, canceled, and no-show appointments are excluded from product metrics.
7995
+ *
7723
7996
  * @param productId - Optional product ID (if not provided, returns all products)
7724
7997
  * @param dateRange - Optional date range filter
7998
+ * @param filters - Optional filters (e.g., clinicBranchId)
7725
7999
  * @returns Product usage metrics
7726
8000
  */
7727
- getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
8001
+ getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
7728
8002
  /**
7729
8003
  * Get patient behavior metrics grouped by clinic, practitioner, procedure, or technology
7730
8004
  * Shows patient no-show and cancellation patterns per entity
@@ -7761,6 +8035,78 @@ declare class AnalyticsService extends BaseService {
7761
8035
  * @returns Complete dashboard analytics
7762
8036
  */
7763
8037
  getDashboardData(filters?: AnalyticsFilters, dateRange?: AnalyticsDateRange, options?: ReadStoredAnalyticsOptions): Promise<DashboardAnalytics>;
8038
+ /**
8039
+ * Calculate revenue trends over time
8040
+ * Groups appointments by week/month/quarter/year and calculates revenue metrics
8041
+ *
8042
+ * @param dateRange - Date range for trend analysis (must align with period boundaries)
8043
+ * @param period - Period type (week, month, quarter, year)
8044
+ * @param filters - Optional filters for clinic, practitioner, procedure, patient
8045
+ * @param groupBy - Optional entity type to group trends by (clinic, practitioner, procedure, technology, patient)
8046
+ * @returns Array of revenue trends with percentage changes
8047
+ */
8048
+ getRevenueTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<RevenueTrend[]>;
8049
+ /**
8050
+ * Calculate revenue trends grouped by entity
8051
+ */
8052
+ private getGroupedRevenueTrends;
8053
+ /**
8054
+ * Calculate duration/efficiency trends over time
8055
+ *
8056
+ * @param dateRange - Date range for trend analysis
8057
+ * @param period - Period type (week, month, quarter, year)
8058
+ * @param filters - Optional filters
8059
+ * @param groupBy - Optional entity type to group trends by
8060
+ * @returns Array of duration trends with percentage changes
8061
+ */
8062
+ getDurationTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<DurationTrend[]>;
8063
+ /**
8064
+ * Calculate appointment count trends over time
8065
+ *
8066
+ * @param dateRange - Date range for trend analysis
8067
+ * @param period - Period type (week, month, quarter, year)
8068
+ * @param filters - Optional filters
8069
+ * @param groupBy - Optional entity type to group trends by
8070
+ * @returns Array of appointment trends with percentage changes
8071
+ */
8072
+ getAppointmentTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<AppointmentTrend[]>;
8073
+ /**
8074
+ * Calculate cancellation and no-show rate trends over time
8075
+ *
8076
+ * @param dateRange - Date range for trend analysis
8077
+ * @param period - Period type (week, month, quarter, year)
8078
+ * @param filters - Optional filters
8079
+ * @param groupBy - Optional entity type to group trends by
8080
+ * @returns Array of cancellation rate trends with percentage changes
8081
+ */
8082
+ getCancellationRateTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<CancellationRateTrend[]>;
8083
+ /**
8084
+ * Get review metrics for a specific entity (practitioner, procedure, etc.)
8085
+ */
8086
+ getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
8087
+ /**
8088
+ * Get review metrics for multiple entities (grouped)
8089
+ */
8090
+ getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
8091
+ /**
8092
+ * Get overall review averages for comparison
8093
+ */
8094
+ getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
8095
+ /**
8096
+ * Get review details for a specific entity
8097
+ */
8098
+ getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
8099
+ /**
8100
+ * Calculate review trends over time
8101
+ * Groups reviews by period and calculates rating and recommendation metrics
8102
+ *
8103
+ * @param dateRange - Date range for trend analysis
8104
+ * @param period - Period type (week, month, quarter, year)
8105
+ * @param filters - Optional filters for clinic, practitioner, procedure
8106
+ * @param entityType - Optional entity type to group trends by
8107
+ * @returns Array of review trends with percentage changes
8108
+ */
8109
+ getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
7764
8110
  }
7765
8111
 
7766
8112
  /**
@@ -8670,6 +9016,18 @@ declare class PatientRequirementsService extends BaseService {
8670
9016
 
8671
9017
  declare class ReviewService extends BaseService {
8672
9018
  constructor(db: Firestore, auth: Auth, app: FirebaseApp);
9019
+ /**
9020
+ * Helper function to convert Firestore Timestamps to Date objects
9021
+ * @param timestamp The timestamp to convert
9022
+ * @returns A JavaScript Date object or null
9023
+ */
9024
+ private convertTimestamp;
9025
+ /**
9026
+ * Converts a Firestore document to a Review object with proper date handling
9027
+ * @param docData The raw Firestore document data
9028
+ * @returns A Review object with properly converted dates
9029
+ */
9030
+ private convertDocToReview;
8673
9031
  /**
8674
9032
  * Creates a new review
8675
9033
  * @param data - The review data to create
@@ -8750,4 +9108,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
8750
9108
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
8751
9109
  declare const getFirebaseFunctions: () => Promise<Functions>;
8752
9110
 
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 };
9111
+ 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 };