import { OPTIONAL, BOOLEAN, IA5String, ASN1Element as _Element } from "@wildboar/asn1";
import * as $ from "@wildboar/asn1/functional";
import { CommonCriteriaMeasures } from "../PlatformCertificateProfile/CommonCriteriaMeasures.ta.mjs";
import { FIPSLevel } from "../PlatformCertificateProfile/FIPSLevel.ta.mjs";
import { MeasurementRootType, _enum_for_MeasurementRootType } from "../PlatformCertificateProfile/MeasurementRootType.ta.mjs";
import { Version } from "./Version.ta.mjs";
/**
 * @summary TBBSecurityAssertions
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * TBBSecurityAssertions ::= SEQUENCE {
 *     version             Version DEFAULT v1,
 *     ccInfo              [0] IMPLICIT CommonCriteriaMeasures OPTIONAL,
 *     fipsLevel           [1] IMPLICIT FIPSLevel OPTIONAL,
 *     rtmType             [2] IMPLICIT MeasurementRootType OPTIONAL,
 *     iso9000Certified    BOOLEAN DEFAULT FALSE,
 *     iso9000Uri          IA5String (SIZE (1..urimax)) OPTIONAL }
 * ```
 *
 */
export declare class TBBSecurityAssertions {
    /**
     * @summary `version`.
     * @public
     * @readonly
     */
    readonly version?: OPTIONAL<Version>;
    /**
     * @summary `ccInfo`.
     * @public
     * @readonly
     */
    readonly ccInfo?: OPTIONAL<CommonCriteriaMeasures>;
    /**
     * @summary `fipsLevel`.
     * @public
     * @readonly
     */
    readonly fipsLevel?: OPTIONAL<FIPSLevel>;
    /**
     * @summary `rtmType`.
     * @public
     * @readonly
     */
    readonly rtmType?: OPTIONAL<MeasurementRootType>;
    /**
     * @summary `iso9000Certified`.
     * @public
     * @readonly
     */
    readonly iso9000Certified?: OPTIONAL<BOOLEAN>;
    /**
     * @summary `iso9000Uri`.
     * @public
     * @readonly
     */
    readonly iso9000Uri?: OPTIONAL<IA5String>;
    constructor(
    /**
     * @summary `version`.
     * @public
     * @readonly
     */
    version?: OPTIONAL<Version>, 
    /**
     * @summary `ccInfo`.
     * @public
     * @readonly
     */
    ccInfo?: OPTIONAL<CommonCriteriaMeasures>, 
    /**
     * @summary `fipsLevel`.
     * @public
     * @readonly
     */
    fipsLevel?: OPTIONAL<FIPSLevel>, 
    /**
     * @summary `rtmType`.
     * @public
     * @readonly
     */
    rtmType?: OPTIONAL<MeasurementRootType>, 
    /**
     * @summary `iso9000Certified`.
     * @public
     * @readonly
     */
    iso9000Certified?: OPTIONAL<BOOLEAN>, 
    /**
     * @summary `iso9000Uri`.
     * @public
     * @readonly
     */
    iso9000Uri?: OPTIONAL<IA5String>);
    /**
     * @summary Restructures an object into a TBBSecurityAssertions
     * @description
     *
     * This takes an `object` and converts it to a `TBBSecurityAssertions`.
     *
     * @public
     * @static
     * @method
     * @param {Object} _o An object having all of the keys and values of a `TBBSecurityAssertions`.
     * @returns {TBBSecurityAssertions}
     */
    static _from_object(_o: {
        [_K in keyof (TBBSecurityAssertions)]: (TBBSecurityAssertions)[_K];
    }): TBBSecurityAssertions;
    /**
     * @summary Getter that returns the default value for `version`.
     * @public
     * @static
     * @method
     */
    static get _default_value_for_version(): Version;
    /**
     * @summary Getter that returns the default value for `iso9000Certified`.
     * @public
     * @static
     * @method
     */
    static get _default_value_for_iso9000Certified(): BOOLEAN;
    /**
     * @summary The enum used as the type of the component `rtmType`
     * @public
     * @static
     */
    static _enum_for_rtmType: typeof _enum_for_MeasurementRootType;
}
/**
 * @summary The Leading Root Component Types of TBBSecurityAssertions
 * @description
 *
 * This is an array of `ComponentSpec`s that define how to decode the leading root component type list of a SET or SEQUENCE.
 *
 * @constant
 */
export declare const _root_component_type_list_1_spec_for_TBBSecurityAssertions: $.ComponentSpec[];
/**
 * @summary The Trailing Root Component Types of TBBSecurityAssertions
 * @description
 *
 * This is an array of `ComponentSpec`s that define how to decode the trailing root component type list of a SET or SEQUENCE.
 *
 * @constant
 */
export declare const _root_component_type_list_2_spec_for_TBBSecurityAssertions: $.ComponentSpec[];
/**
 * @summary The Extension Addition Component Types of TBBSecurityAssertions
 * @description
 *
 * This is an array of `ComponentSpec`s that define how to decode the extension addition component type list of a SET or SEQUENCE.
 *
 * @constant
 */
export declare const _extension_additions_list_spec_for_TBBSecurityAssertions: $.ComponentSpec[];
/**
 * @summary Decodes an ASN.1 element into a(n) TBBSecurityAssertions
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {TBBSecurityAssertions} The decoded data structure.
 */
export declare function _decode_TBBSecurityAssertions(el: _Element): TBBSecurityAssertions;
/**
 * @summary Encodes a(n) TBBSecurityAssertions into an ASN.1 Element.
 * @function
 * @param value The element being encoded.
 * @param elGetter A function that can be used to get new ASN.1 elements.
 * @returns {_Element} The TBBSecurityAssertions, encoded as an ASN.1 Element.
 */
export declare function _encode_TBBSecurityAssertions(value: TBBSecurityAssertions, elGetter: $.ASN1Encoder<TBBSecurityAssertions>): _Element;
//# sourceMappingURL=TBBSecurityAssertions.ta.d.mts.map