import { ObjectIdentifier as OID } from "./types/objectidentifier";
import { ASN1TagClass, ASN1Construction } from "./values";
export declare abstract class ASN1Element {
    protected recursionCount: number;
    protected static readonly nestingRecursionLimit: number;
    tagClass: ASN1TagClass;
    construction: ASN1Construction;
    tagNumber: number;
    value: Uint8Array;
    length(): number;
    abstract boolean: boolean;
    abstract integer: number;
    abstract bitString: boolean[];
    abstract octetString: Uint8Array;
    abstract objectIdentifier: OID;
    abstract objectDescriptor: string;
    abstract real: number;
    abstract enumerated: number;
    abstract utf8String: string;
    abstract relativeObjectIdentifier: number[];
    abstract sequence: ASN1Element[];
    abstract set: ASN1Element[];
    abstract numericString: string;
    abstract printableString: string;
    abstract teletexString: Uint8Array;
    abstract videotexString: Uint8Array;
    abstract ia5String: string;
    abstract utcTime: Date;
    abstract generalizedTime: Date;
    abstract graphicString: string;
    abstract visibleString: string;
    abstract generalString: string;
    abstract universalString: string;
    abstract bmpString: string;
    constructor();
}
