using System;
using System.Collections.Generic;
using JsonConverter.Abstractions;
using WireMock.Matchers;
using WireMock.Util;
namespace WireMock.RequestBuilders;
///
/// The BodyRequestBuilder interface.
///
public interface IBodyRequestBuilder : IProtoBufRequestBuilder
{
///
/// WithBody: IMatcher
///
/// The matcher.
/// The .
IRequestBuilder WithBody(IMatcher matcher);
///
/// WithBody: IMatcher[]
///
/// The matchers.
/// The to use.
/// The .
IRequestBuilder WithBody(IMatcher[] matchers, MatchOperator matchOperator = MatchOperator.Or);
///
/// WithBody: Body as string
///
/// The body.
/// The match behaviour.
/// The .
IRequestBuilder WithBody(string body, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithBody: Body as byte[]
///
/// The body.
/// The match behaviour.
/// The .
IRequestBuilder WithBody(byte[] body, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithBody: Body as object
///
/// The body.
/// The match behaviour [default is AcceptOnMatch].
/// The .
IRequestBuilder WithBody(object body, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithBodyAsJson: A will be used to match this object.
///
/// The body.
/// The match behaviour [default is AcceptOnMatch].
/// A .
IRequestBuilder WithBodyAsJson(object body, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithBody: func (string)
///
/// The function.
/// The .
IRequestBuilder WithBody(Func func);
///
/// WithBody: func (byte[])
///
/// The function.
/// The .
IRequestBuilder WithBody(Func func);
///
/// WithBody: func (json object)
///
/// The function.
/// The .
IRequestBuilder WithBody(Func