using JetBrains.Annotations;
using System;
using WireMock.Matchers;
using WireMock.Matchers.Request;
using WireMock.Util;
namespace WireMock.RequestBuilders
{
///
/// The BodyRequestBuilder interface.
///
public interface IBodyRequestBuilder : IRequestMatcher
{
///
/// WithBody: IMatcher
///
/// The matcher.
/// The .
IRequestBuilder WithBody([NotNull] IMatcher matcher);
///
/// WithBody: IMatcher[]
///
/// The matchers.
/// The .
IRequestBuilder WithBody([NotNull] IMatcher[] matchers);
///
/// 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.
/// The .
IRequestBuilder WithBody(object body, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithBody: func (string)
///
/// The function.
/// The .
IRequestBuilder WithBody([NotNull] Func func);
///
/// WithBody: func (byte[])
///
/// The function.
/// The .
IRequestBuilder WithBody([NotNull] Func func);
///
/// WithBody: func (json object)
///
/// The function.
/// The .
IRequestBuilder WithBody([NotNull] Func