import { OPTIONAL, BOOLEAN, INTEGER, IA5String, ASN1Element as _Element } from "asn1-ts";
import * as $ from "asn1-ts/dist/node/functional";
import { CommonCriteriaMeasures } from "../PlatformCertificateProfile/CommonCriteriaMeasures.ta";
export { CommonCriteriaMeasures, _decode_CommonCriteriaMeasures, _encode_CommonCriteriaMeasures } from "../PlatformCertificateProfile/CommonCriteriaMeasures.ta";
import { FIPSLevel } from "../PlatformCertificateProfile/FIPSLevel.ta";
export { FIPSLevel, _decode_FIPSLevel, _encode_FIPSLevel } from "../PlatformCertificateProfile/FIPSLevel.ta";
import { MeasurementRootType, _enum_for_MeasurementRootType } from "../PlatformCertificateProfile/MeasurementRootType.ta";
export { MeasurementRootType, _enum_for_MeasurementRootType, MeasurementRootType_static_, static_, MeasurementRootType_dynamic, dynamic, MeasurementRootType_nonHost, nonHost, MeasurementRootType_hybrid, hybrid, MeasurementRootType_physical, physical, MeasurementRootType_virtual, virtual, _decode_MeasurementRootType, _encode_MeasurementRootType } from "../PlatformCertificateProfile/MeasurementRootType.ta";
import { Version } from "./Version.ta";
/**
 * @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 }
 * ```
 *
 * @class
 */
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(): INTEGER;
    /**
     * @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} el The element being decoded.
 * @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;
