// Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization.Metadata; using System.Threading.Tasks; namespace Microsoft.Agents.AI.Workflows.Checkpointing; /// /// An abstract base class for checkpoint stores that use JSON for serialization. /// public abstract class JsonCheckpointStore : ICheckpointStore { /// /// A default TypeInfo for serializing the type, if needed. /// protected static JsonTypeInfo KeyTypeInfo => WorkflowsJsonUtilities.JsonContext.Default.CheckpointInfo; /// public abstract ValueTask CreateCheckpointAsync(string sessionId, JsonElement value, CheckpointInfo? parent = null); /// public abstract ValueTask RetrieveCheckpointAsync(string sessionId, CheckpointInfo key); /// public abstract ValueTask> RetrieveIndexAsync(string sessionId, CheckpointInfo? withParent = null); }