import ASN1Element from "../asn1.mjs";
import { ASN1Construction, ASN1TagClass, LengthEncodingPreference } from "../values.mjs";
import X690Element from "../x690.mjs";
import CharacterString from "../types/CharacterString.mjs";
import { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
export default class BERElement extends X690Element {
    static lengthEncodingPreference: LengthEncodingPreference;
    private _value;
    private _currentValueLength;
    get value(): Uint8Array;
    set value(v: Uint8Array);
    construct(els: ASN1Element[]): void;
    set boolean(value: BOOLEAN);
    get boolean(): BOOLEAN;
    set bitString(value: BIT_STRING);
    get bitString(): BIT_STRING;
    set octetString(value: OCTET_STRING);
    get octetString(): OCTET_STRING;
    set objectDescriptor(value: ObjectDescriptor);
    get objectDescriptor(): ObjectDescriptor;
    set external(value: EXTERNAL);
    get external(): EXTERNAL;
    set real(value: REAL);
    get real(): REAL;
    set embeddedPDV(value: EMBEDDED_PDV);
    get embeddedPDV(): EMBEDDED_PDV;
    set utf8String(value: UTF8String);
    get utf8String(): UTF8String;
    set sequence(value: SEQUENCE<ASN1Element>);
    get sequence(): SEQUENCE<ASN1Element>;
    set set(value: SET<ASN1Element>);
    get set(): SET<ASN1Element>;
    set sequenceOf(value: SEQUENCE<ASN1Element>);
    get sequenceOf(): SEQUENCE<ASN1Element>;
    set setOf(value: SET<ASN1Element>);
    get setOf(): SET<ASN1Element>;
    set numericString(value: NumericString);
    get numericString(): NumericString;
    set printableString(value: PrintableString);
    get printableString(): PrintableString;
    set teletexString(value: TeletexString);
    get teletexString(): TeletexString;
    set videotexString(value: VideotexString);
    get videotexString(): VideotexString;
    set ia5String(value: IA5String);
    get ia5String(): IA5String;
    set utcTime(value: UTCTime);
    get utcTime(): UTCTime;
    set generalizedTime(value: GeneralizedTime);
    get generalizedTime(): GeneralizedTime;
    set graphicString(value: GraphicString);
    get graphicString(): GraphicString;
    set visibleString(value: VisibleString);
    get visibleString(): VisibleString;
    set generalString(value: GeneralString);
    get generalString(): GeneralString;
    set characterString(value: CharacterString);
    get characterString(): CharacterString;
    set universalString(value: UniversalString);
    get universalString(): UniversalString;
    set bmpString(value: BMPString);
    get bmpString(): BMPString;
    set duration(value: DURATION);
    get duration(): DURATION;
    encode(value: any): void;
    static fromSequence(sequence: (ASN1Element | null | undefined)[]): BERElement;
    static fromSet(set: (BERElement | null | undefined)[]): BERElement;
    static fromSetOf(set: (BERElement | null | undefined)[]): BERElement;
    get inner(): ASN1Element;
    set inner(value: ASN1Element);
    constructor(tagClass?: ASN1TagClass, construction?: ASN1Construction, tagNumber?: number, value?: any);
    fromBytes(bytes: Uint8Array): number;
    lengthLength(valueLength?: number): number;
    valueLength(): number;
    tlvLength(): number;
    tagAndLengthBytes(): Uint8Array;
    toBuffers(): Uint8Array[];
    deconstruct(dataType: string): Uint8Array;
    get components(): ASN1Element[];
}
