using System.Threading;
using System.Threading.Tasks;
using ZB.MOM.WW.CBDDC.Core.Network;
namespace ZB.MOM.WW.CBDDC.Network;
///
/// Calculates the effective oplog prune cutoff for maintenance.
///
public interface IOplogPruneCutoffCalculator
{
///
/// Calculates the effective prune cutoff for the provided node configuration.
///
/// The local node configuration.
/// The cancellation token.
/// A prune cutoff decision describing whether prune is allowed and at which cutoff.
Task CalculateEffectiveCutoffAsync(
PeerNodeConfiguration configuration,
CancellationToken cancellationToken = default);
}