+ /**
+ * Determines if there have been any dynamic server configuration changes applied.
+ *
+ * @return true if dynamic server configuration changes have been applied, false otherwise, meaning that static
+ * peer configuration is still in use.
+ */
+ boolean isDynamicServerConfigurationInUse();
+
+ /**
+ * Sets that dynamic server configuration changes have been applied.
+ */
+ void setDynamicServerConfigurationInUse();
+
+ /**
+ * Returns the peer information as a ServerConfigurationPayload if dynamic server configurations have been applied.
+ *
+ * @param includeSelf include this peer's info.
+ * @return the peer information as a ServerConfigurationPayload or null if no dynamic server configurations have
+ * been applied.
+ */
+ @Nullable
+ ServerConfigurationPayload getPeerServerInfo(boolean includeSelf);
+
+ /**
+ * Determines if this peer is a voting member of the cluster.
+ *
+ * @return true if this peer is a voting member, false otherwise.
+ */
+ boolean isVotingMember();
+
+ /**
+ * Determines if there are any voting peers.
+ *
+ * @return true if there are any voting peers, false otherwise.
+ */
+ boolean anyVotingPeers();
+
+ /**
+ * Returns the current behavior attached to the RaftActor.
+ *
+ * @return current behavior.
+ */
+ RaftActorBehavior getCurrentBehavior();
+
+ /**
+ * Returns the consumer of ApplyState operations. This is invoked by a behavior when a log entry needs to be
+ * applied to the state.
+ *
+ * @return the Consumer
+ */
+ Consumer<ApplyState> getApplyStateConsumer();
+
+ /**
+ * Creates a FileBackedOutputStream with a common configuration.
+ *
+ * @return a FileBackedOutputStream instance
+ */
+ @Nonnull
+ FileBackedOutputStream newFileBackedOutputStream();