diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
index 5d58fc1..030aadb 100644
--- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
@@ -46,6 +46,7 @@
 import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStageInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrolledFingerprintsInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollStageCountInteractor
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollStageThresholdInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor
@@ -117,6 +118,9 @@
   fun createFingerprintEnrollStageCountInteractor(): FingerprintEnrollStageCountInteractor =
     FingerprintEnrollStageCountInteractor(fingerprintEnrollmentRepository)
 
+  fun createFingerprintEnrollStageThresholdInteractor(): FingerprintEnrollStageThresholdInteractor =
+    FingerprintEnrollStageThresholdInteractor(fingerprintEnrollmentRepository)
+
   fun createGenerateChallengeInteractor(): GenerateChallengeInteractor =
     GenerateChallengeInteractorImpl(fingerprintManager, context.userId, gateKeeperPasswordProvider)
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt
index 23ad8ef..d01a49c 100644
--- a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt
@@ -49,6 +49,14 @@
   val enrollStageCount: Int
 
   /**
+   * Returns the threshold for the given stage of fingerprint enrollment.
+   *
+   * @param index The index of the enrollment stage.
+   * @return The threshold for the enrollment stage.
+   */
+  fun getEnrollStageThreshold(index: Int): Float
+
+  /**
    * Indicates if we should use the default settings for maximum enrollments or the sensor props
    * from the fingerprint sensor
    */
@@ -120,4 +128,7 @@
 
   override val enrollStageCount: Int
     get() = fingerprintManager.enrollStageCount
+
+  override fun getEnrollStageThreshold(index: Int): Float =
+    fingerprintManager.getEnrollStageThreshold(index)
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt
new file mode 100644
index 0000000..a96e4ef
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollStageThresholdInteractor.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintEnrollmentRepository
+
+/**
+ * Interactor class for retrieving the enrollment stage threshold.
+ *
+ * This class interacts with the `fingerprintEnrollmentRepository` to fetch the threshold value
+ * for a specific enrollment stage.
+ */
+class FingerprintEnrollStageThresholdInteractor(
+    private val fingerprintEnrollmentRepository: FingerprintEnrollmentRepository,
+) {
+    /**
+     * Retrieves the enrollment stage threshold for the given index.
+     *
+     * @param index The index of the enrollment stage.
+     * @return The threshold value for the specified stage.
+     */
+    fun getThreshold(index: Int): Float = fingerprintEnrollmentRepository.getEnrollStageThreshold(index)
+}
\ No newline at end of file
