// Copyright (c) Microsoft. All rights reserved.
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.Agents.AI.Workflows.Checkpointing;
internal interface ICheckpointingHandle
{
///
/// Gets a value indicating whether checkpointing is enabled for the current operation or process.
///
bool IsCheckpointingEnabled { get; }
///
/// Gets a read-only list of checkpoint information associated with the current context.
///
IReadOnlyList Checkpoints { get; }
///
/// Restores the system state from the specified checkpoint asynchronously.
///
/// The checkpoint information that identifies the state to restore. Cannot be null.
/// A cancellation token that can be used to cancel the restore operation.
/// A that represents the asynchronous restore operation.
ValueTask RestoreCheckpointAsync(CheckpointInfo checkpointInfo, CancellationToken cancellationToken = default);
}