package com.l7tech.message;

import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.common.mime.NoSuchPartException;
import com.l7tech.common.mime.PartInfo;
import com.l7tech.common.mime.PartIterator;
import java.io.IOException;
import java.io.InputStream;

public interface MimeKnob extends MessageKnob, Iterable<PartInfo> {
   boolean isMultipart();

   PartIterator getParts() throws IOException;

   PartIterator iterator();

   PartInfo getPart(int var1) throws IOException, NoSuchPartException;

   PartInfo getPartByContentId(String var1) throws IOException, NoSuchPartException;

   void setContentLengthLimit(long var1) throws IOException;

   long getContentLengthLimit();

   ContentTypeHeader getOuterContentType();

   void setOuterContentType(ContentTypeHeader var1);

   long getContentLength() throws IOException;

   void setStreamValidatedPartsOnly();

   InputStream getEntireMessageBodyAsInputStream() throws IOException, NoSuchPartException;

   InputStream getEntireMessageBodyAsInputStream(boolean var1) throws IOException, NoSuchPartException;

   PartInfo getFirstPart() throws IOException;

   void setBufferingDisallowed(boolean var1);

   boolean isBufferingDisallowed();
}
