+ int MEGABYTE = 1048576;
+
+ /**
+ * Returns the minimum number of entries to be present in the in-memory Raft log for a snapshot to be taken.
+ *
+ * @return the minimum number of entries.
+ */
+ long getSnapshotBatchCount();
+
+ /**
+ * Returns the percentage of total memory used in the in-memory Raft log before a snapshot should be taken.
+ * Disabled when direct threshold is enabled.
+ *
+ * @return the percentage.
+ */
+ int getSnapshotDataThresholdPercentage();
+
+ /**
+ * Returns the max size of memory used in the in-memory Raft log before a snapshot should be taken. 0 means that
+ * direct threshold is disabled and percentage is used instead.
+ *
+ * @return maximum journal size (in MiB).
+ */
+ int getSnapshotDataThreshold();
+
+ /**
+ * Returns the interval(in seconds) after which a snapshot should be taken during recovery. Negative value means
+ * do not take snapshots.
+ *
+ * @return the interval of recovery snapshot in seconds
+ */
+ int getRecoverySnapshotIntervalSeconds();
+
+ /**
+ * Returns the interval at which a heart beat message should be sent to remote followers.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ FiniteDuration getHeartBeatInterval();
+
+ /**
+ * Returns the interval after which a new election should be triggered if no leader is available.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ FiniteDuration getElectionTimeOutInterval();
+
+ /**
+ * Returns the number by which a candidate should divide the election timeout it has calculated. This serves
+ * to speed up retries when elections result in a stalemate.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ long getCandidateElectionTimeoutDivisor();
+
+ /**
+ * Returns the maximum election time variance. The election is scheduled using both the election timeout
+ * and variance.
+ *
+ * @return the election time variance.
+ */
+ int getElectionTimeVariance();
+