import { AsnArray } from "@peculiar/asn1-schema";
import { SecurityClassification } from "./types";
import { SecurityCategories } from "./security_category";
/**
 * ```asn1
 * ESSPrivacyMark ::= CHOICE {
 *     pString      PrintableString (SIZE (1..ub-privacy-mark-length)),
 *     utf8String   UTF8String (SIZE (1..MAX))
 * }
 * ```
 * @todo - is there a way to enforce the size constraint?
 */
export declare class ESSPrivacyMark {
    pString?: string;
    utf8String?: string;
    constructor(params?: Partial<ESSPrivacyMark>);
}
/**
 * ```asn1
 * ESSSecurityLabel ::= SET {
 *   security-policy-identifier SecurityPolicyIdentifier,
 *   security-classification SecurityClassification OPTIONAL,
 *   privacy-mark ESSPrivacyMark OPTIONAL,
 *   security-categories SecurityCategories OPTIONAL }
 * ```
 */
export declare class ESSSecurityLabel {
    securityPolicyIdentifier: string;
    securityClassification?: SecurityClassification;
    privacyMark?: ESSPrivacyMark;
    securityCategories?: SecurityCategories;
    constructor(params?: Partial<ESSSecurityLabel>);
}
/**
 * ```asn1
 * EquivalentLabels ::= SEQUENCE OF ESSSecurityLabel
 * ```
 */
export declare class EquivalentLabels extends AsnArray<ESSSecurityLabel> {
    constructor(items?: ESSSecurityLabel[]);
}
