using System;
using System.Collections.Generic;
using JetBrains.Annotations;
using WireMock.Matchers;
using WireMock.Matchers.Request;
namespace WireMock.RequestBuilders
{
///
/// The HeadersAndCookieRequestBuilder interface.
///
public interface IHeadersAndCookiesRequestBuilder : IBodyRequestBuilder, IRequestMatcher, IParamsRequestBuilder
{
///
/// Add Header matching based on name, pattern and ignoreCase.
///
/// The name.
/// The pattern.
/// ignore Case
/// The .
IRequestBuilder WithHeader([NotNull] string name, string pattern, bool ignoreCase = true);
///
/// Add Header matching based on name, patterns and ignoreCase.
///
/// The name.
/// The patterns.
/// ignore Case
/// The .
IRequestBuilder WithHeader([NotNull] string name, string[] patterns, bool ignoreCase = true);
///
/// The with header.
///
/// The name.
/// The matchers.
/// The .
IRequestBuilder WithHeader([NotNull] string name, [NotNull] params IMatcher[] matchers);
///
/// The with header.
///
/// The headers funcs.
/// The .
IRequestBuilder WithHeader([NotNull] params Func, bool>[] funcs);
///
/// The with cookie.
///
/// The name.
/// The pattern.
/// ignore Case
/// The .
IRequestBuilder WithCookie([NotNull] string name, string pattern, bool ignoreCase = true);
///
/// The with cookie.
///
/// The name.
/// The matchers.
/// The .
IRequestBuilder WithCookie([NotNull] string name, [NotNull] params IMatcher[] matchers);
///
/// The with cookie.
///
/// The funcs.
/// The .
IRequestBuilder WithCookie([NotNull] params Func, bool>[] cookieFuncs);
}
}