pub mod encryption;
pub mod error;
pub mod failover;
pub mod heartbeat;
pub mod log;
pub mod metrics;
pub mod node;
pub mod persistence;
pub mod rpc;
pub mod snapshot;
pub mod state;
pub mod types;
pub mod wal;
pub use encryption::{EncryptedPayload, EntryEncryptor, LogEncryptionKey, LogIntegrityVerifier};
pub use error::{RaftError, RaftResult};
pub use failover::{FailoverConfig, FailoverCoordinator, FailoverEvent};
pub use heartbeat::FailureDetector;
pub use log::{ApplyResult, Command, LogEntry, RaftLog, SnapshotData, StateMachine};
pub use metrics::ClusterMetrics;
pub use node::RaftNode;
pub use persistence::{FilePersistence, MemoryPersistence, RaftPersistence};
pub use rpc::{
AppendEntriesRequest, AppendEntriesResponse, RequestVoteRequest, RequestVoteResponse,
};
pub use snapshot::{
DiskSnapshotStore, InstallSnapshotRequest, InstallSnapshotResponse, Snapshot, SnapshotConfig,
SnapshotManager, SnapshotMetadata, SnapshotPolicy, SnapshotReceiver, SnapshotStore,
};
pub use state::{CandidateState, FencingTokenState, LeaderState, PersistentState, VolatileState};
pub use types::{
ClusterConfig, ConfigState, FailureEvent, FencingToken, HeartbeatConfig, LogIndex,
MembershipChange, NodeId, NodeState, RaftConfig, Term,
};
pub use wal::{CorruptionPolicy, SyncMode, WalDiagnostics, WalReader, WalWriter};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const NAME: &str = env!("CARGO_PKG_NAME");