class MetricsLoggerClient {

  void logRenderError(InAppMessage message, InAppMessagingErrorReason errorReason) {
    if (!isTestCampaign(message)) {
      // If message is not a test message then log campaign metrics
      firebaseInstallations
          .getId()
          .addOnSuccessListener(
              id ->
                  engagementMetricsLogger.logEvent(
                      createRenderErrorEntry(message, id, errorTransform.get(errorReason))
                          .toByteArray()));
    }
    // No matter what, always trigger developer callbacks
    developerListenerManager.displayErrorEncountered(message, errorReason);
  }

  public  MetricsLoggerClient(
      EngagementMetricsLoggerInterface engagementMetricsLogger,
      AnalyticsConnector analyticsConnector,
      FirebaseApp firebaseApp,
      FirebaseInstallationsApi firebaseInstallations,
      Clock clock,
      DeveloperListenerManager developerListenerManager);

}