package com.l7tech.message;

import java.util.Collection;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface HeadersKnob extends HasHeaders, MessageKnob {
   String HEADER_TYPE_HTTP = "HTTP Header";

   void setHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3);

   void setHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3, boolean var4);

   void addHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3);

   void addHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3, boolean var4);

   void removeHeader(@NotNull String var1, @NotNull String var2);

   void removeHeader(@NotNull String var1, @NotNull String var2, boolean var3);

   void removeHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3);

   void removeHeader(@NotNull String var1, @Nullable Object var2, @NotNull String var3, boolean var4);

   boolean containsHeader(@NotNull String var1, @NotNull String var2);

   Collection<Header> getHeaders();

   Collection<Header> getHeaders(@Nullable String var1);

   Collection<Header> getHeaders(@Nullable String var1, boolean var2);

   Collection<Header> getHeaders(@NotNull String var1, @Nullable String var2);

   Collection<Header> getHeaders(@NotNull String var1, @Nullable String var2, boolean var3);

   String[] getHeaderValues(@NotNull String var1, @Nullable String var2);

   String[] getHeaderValues(@NotNull String var1, @Nullable String var2, boolean var3);

   String[] getHeaderNames(@Nullable String var1);

   String[] getHeaderNames(@Nullable String var1, boolean var2, boolean var3);
}
