using System;
using System.IO;
namespace Org.BouncyCastle.Asn1
{
public interface Asn1TaggedObjectParser
: IAsn1Convertible
{
int TagClass { get; }
int TagNo { get; }
// TODO[api]
//bool HasContextTag();
bool HasContextTag(int tagNo);
bool HasTag(int tagClass, int tagNo);
// TODO[api]
//bool HasTagClass(int tagClass);
///
IAsn1Convertible ParseBaseUniversal(bool declaredExplicit, int baseTagNo);
/// Needed for open types, until we have better type-guided parsing support.
///
/// Use sparingly for other purposes, and prefer or
/// where possible. Before using, check for matching tag
/// class and number.
///
///
IAsn1Convertible ParseExplicitBaseObject();
///
Asn1TaggedObjectParser ParseExplicitBaseTagged();
///
Asn1TaggedObjectParser ParseImplicitBaseTagged(int baseTagClass, int baseTagNo);
}
}