class FirebaseSegmentation {

  @NonNull
  public synchronized Task<Void> setCustomInstallationId(@Nullable String customInstallationId) {
    if (customInstallationId == null) {
      return Tasks.call(executor, () -> clearCustomInstallationId());
    }
    return Tasks.call(executor, () -> updateCustomInstallationId(customInstallationId));
  }

    FirebaseSegmentation(FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi);
    FirebaseSegmentation(
      FirebaseApp firebaseApp,
      FirebaseInstallationsApi firebaseInstallationsApi,
      CustomInstallationIdCache localCache,
      SegmentationServiceClient backendServiceClient);

}