// Copyright © WireMock.Net
using JetBrains.Annotations;
using WireMock.Types;
using WireMock.Util;
namespace WireMock.Transformers;
///
/// Defines the contract for transforming JSON-like body data using a transformer context.
///
[PublicAPI]
public interface IJsonBodyTransformer
{
///
/// Transforms the JSON body using the provided transformer context and model.
///
/// The transformer context used to render and evaluate template values.
/// The JSON node replacement behavior to apply during transformation.
/// The model used when rendering or evaluating template values.
/// The original body data to transform.
/// The transformed JSON body data.
BodyData TransformBodyAsJson(
ITransformerContext transformerContext,
ReplaceNodeOptions options,
object model,
IBodyData original);
}