package com.sun.identity.saml2.assertion;

import com.sun.identity.saml2.common.SAML2Exception;
import java.security.Key;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.util.List;

public interface Assertion {
   String getVersion();

   void setVersion(String var1) throws SAML2Exception;

   Date getIssueInstant();

   void setIssueInstant(Date var1) throws SAML2Exception;

   Subject getSubject();

   void setSubject(Subject var1) throws SAML2Exception;

   Advice getAdvice();

   void setAdvice(Advice var1) throws SAML2Exception;

   String getSignature();

   Conditions getConditions();

   void setConditions(Conditions var1) throws SAML2Exception;

   String getID();

   void setID(String var1) throws SAML2Exception;

   List<String> getStatements();

   List<AuthnStatement> getAuthnStatements();

   List<AuthzDecisionStatement> getAuthzDecisionStatements();

   List<AttributeStatement> getAttributeStatements();

   void setStatements(List<String> var1) throws SAML2Exception;

   void setAuthnStatements(List<AuthnStatement> var1) throws SAML2Exception;

   void setAuthzDecisionStatements(List<AuthzDecisionStatement> var1) throws SAML2Exception;

   void setAttributeStatements(List<AttributeStatement> var1) throws SAML2Exception;

   Issuer getIssuer();

   void setIssuer(Issuer var1) throws SAML2Exception;

   boolean isSigned();

   boolean isSignatureValid(List<X509Certificate> var1) throws SAML2Exception;

   boolean isTimeValid();

   void sign(PrivateKey var1, X509Certificate var2) throws SAML2Exception;

   EncryptedAssertion encrypt(Key var1, String var2, int var3, String var4) throws SAML2Exception;

   String toXMLString(boolean var1, boolean var2) throws SAML2Exception;

   String toXMLString() throws SAML2Exception;

   void makeImmutable();

   boolean isMutable();
}
