using JetBrains.Annotations;
using System;
using System.Collections.Generic;
using WireMock.Matchers;
using WireMock.Util;
namespace WireMock.RequestBuilders
{
///
/// The ParamsRequestBuilder interface.
///
public interface IParamsRequestBuilder
{
///
/// WithParam: matching on key only.
///
/// The key.
/// The match behaviour (optional).
/// The .
IRequestBuilder WithParam([NotNull] string key, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithParam: matching on key only.
///
/// The key.
/// Defines if the key should be matched using case-ignore.
/// The match behaviour (optional).
/// The .
IRequestBuilder WithParam([NotNull] string key, bool ignoreCase, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch);
///
/// WithParam: matching on key and values.
///
/// The key.
/// The values.
/// The .
IRequestBuilder WithParam([NotNull] string key, [CanBeNull] params string[] values);
///
/// WithParam: matching on key and values.
///
/// The key.
/// Defines if the key should be matched using case-ignore.
/// The values.
/// The .
IRequestBuilder WithParam([NotNull] string key, bool ignoreCase, [CanBeNull] params string[] values);
///
/// WithParam: matching on key and matchers.
///
/// The key.
/// The matchers.
/// The .
IRequestBuilder WithParam([NotNull] string key, [CanBeNull] params IStringMatcher[] matchers);
///
/// WithParam: matching on key and matchers.
///
/// The key.
/// Defines if the key should be matched using case-ignore.
/// The matchers.
/// The .
IRequestBuilder WithParam([NotNull] string key, bool ignoreCase, [CanBeNull] params IStringMatcher[] matchers);
///
/// WithParam: matching on key, values and matchBehaviour.
///
/// The key.
/// The values.
/// The match behaviour.
/// The .
IRequestBuilder WithParam([NotNull] string key, MatchBehaviour matchBehaviour, [CanBeNull] params string[] values);
///
/// WithParam: matching on key, values and matchBehaviour.
///
/// The key.
/// Defines if the key should be matched using case-ignore.
/// The values.
/// The match behaviour.
/// The .
IRequestBuilder WithParam([NotNull] string key, MatchBehaviour matchBehaviour, bool ignoreCase = false, [CanBeNull] params string[] values);
///
/// WithParam: matching on key, matchers and matchBehaviour.
///
/// The key.
/// The matchers.
/// The match behaviour.
/// The .
IRequestBuilder WithParam([NotNull] string key, MatchBehaviour matchBehaviour, [CanBeNull] params IStringMatcher[] matchers);
///
/// WithParam: matching on key, matchers and matchBehaviour.
///
/// The key.
/// Defines if the key should be matched using case-ignore.
/// The matchers.
/// The match behaviour.
/// The .
IRequestBuilder WithParam([NotNull] string key, MatchBehaviour matchBehaviour, bool ignoreCase = false, [CanBeNull] params IStringMatcher[] matchers);
///
/// WithParam: matching on functions.
///
/// The funcs.
/// The .
IRequestBuilder WithParam([NotNull] params Func>, bool>[] funcs);
}
}