using System.Text.Json;
using System.Text.Json.Nodes;
namespace ModelContextProtocol.Interceptors.Client;
///
/// Options for creating an .
///
public sealed class McpClientInterceptorCreateOptions
{
///
/// Gets or sets the name of the interceptor.
///
///
/// If not provided, the name will be derived from the method name.
///
public string? Name { get; set; }
///
/// Gets or sets the version of the interceptor.
///
public string? Version { get; set; }
///
/// Gets or sets the description of the interceptor.
///
public string? Description { get; set; }
///
/// Gets or sets the events this interceptor handles.
///
public string[]? Events { get; set; }
///
/// Gets or sets the interceptor type.
///
public InterceptorType? Type { get; set; }
///
/// Gets or sets the execution phase.
///
public InterceptorPhase? Phase { get; set; }
///
/// Gets or sets the priority hint for mutation ordering.
///
public int? PriorityHint { get; set; }
///
/// Gets or sets the JSON schema for the interceptor's configuration.
///
public JsonElement? ConfigSchema { get; set; }
///
/// Gets or sets protocol-level metadata.
///
public JsonObject? Meta { get; set; }
///
/// Gets or sets the service provider for dependency injection.
///
public IServiceProvider? Services { get; set; }
///
/// Gets or sets the JSON serializer options.
///
public JsonSerializerOptions? SerializerOptions { get; set; }
///
/// Gets or sets the metadata for the interceptor.
///
public IReadOnlyList