import { ENUMERATED, ASN1Element as _Element } from "asn1-ts";
import * as $ from "asn1-ts/dist/node/functional";
export declare enum _enum_for_CRLReason {
    unspecified = 0,
    keyCompromise = 1,
    cACompromise = 2,
    affiliationChanged = 3,
    superseded = 4,
    cessationOfOperation = 5,
    certificateHold = 6,
    removeFromCRL = 8,
    privilegeWithdrawn = 9,
    aACompromise = 10,
    weakAlgorithmOrKey = 11
}
/**
 * @summary CRLReason
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * CRLReason  ::=  ENUMERATED {
 *   unspecified          (0),
 *   keyCompromise        (1),
 *   cACompromise         (2),
 *   affiliationChanged   (3),
 *   superseded           (4),
 *   cessationOfOperation (5),
 *   certificateHold      (6),
 *   removeFromCRL        (8),
 *   privilegeWithdrawn   (9),
 *   aACompromise         (10),
 *   ...,
 *   weakAlgorithmOrKey   (11) }
 * ```@enum {number}
 */
export declare type CRLReason = _enum_for_CRLReason | ENUMERATED;
/**
 * @summary CRLReason_unspecified
 * @constant
 * @type {number}
 */
export declare const CRLReason_unspecified: CRLReason;
/**
 * @summary unspecified
 * @constant
 * @type {number}
 */
export declare const unspecified: CRLReason;
/**
 * @summary CRLReason_keyCompromise
 * @constant
 * @type {number}
 */
export declare const CRLReason_keyCompromise: CRLReason;
/**
 * @summary keyCompromise
 * @constant
 * @type {number}
 */
export declare const keyCompromise: CRLReason;
/**
 * @summary CRLReason_cACompromise
 * @constant
 * @type {number}
 */
export declare const CRLReason_cACompromise: CRLReason;
/**
 * @summary cACompromise
 * @constant
 * @type {number}
 */
export declare const cACompromise: CRLReason;
/**
 * @summary CRLReason_affiliationChanged
 * @constant
 * @type {number}
 */
export declare const CRLReason_affiliationChanged: CRLReason;
/**
 * @summary affiliationChanged
 * @constant
 * @type {number}
 */
export declare const affiliationChanged: CRLReason;
/**
 * @summary CRLReason_superseded
 * @constant
 * @type {number}
 */
export declare const CRLReason_superseded: CRLReason;
/**
 * @summary superseded
 * @constant
 * @type {number}
 */
export declare const superseded: CRLReason;
/**
 * @summary CRLReason_cessationOfOperation
 * @constant
 * @type {number}
 */
export declare const CRLReason_cessationOfOperation: CRLReason;
/**
 * @summary cessationOfOperation
 * @constant
 * @type {number}
 */
export declare const cessationOfOperation: CRLReason;
/**
 * @summary CRLReason_certificateHold
 * @constant
 * @type {number}
 */
export declare const CRLReason_certificateHold: CRLReason;
/**
 * @summary certificateHold
 * @constant
 * @type {number}
 */
export declare const certificateHold: CRLReason;
/**
 * @summary CRLReason_removeFromCRL
 * @constant
 * @type {number}
 */
export declare const CRLReason_removeFromCRL: CRLReason;
/**
 * @summary removeFromCRL
 * @constant
 * @type {number}
 */
export declare const removeFromCRL: CRLReason;
/**
 * @summary CRLReason_privilegeWithdrawn
 * @constant
 * @type {number}
 */
export declare const CRLReason_privilegeWithdrawn: CRLReason;
/**
 * @summary privilegeWithdrawn
 * @constant
 * @type {number}
 */
export declare const privilegeWithdrawn: CRLReason;
/**
 * @summary CRLReason_aACompromise
 * @constant
 * @type {number}
 */
export declare const CRLReason_aACompromise: CRLReason;
/**
 * @summary aACompromise
 * @constant
 * @type {number}
 */
export declare const aACompromise: CRLReason;
/**
 * @summary CRLReason_weakAlgorithmOrKey
 * @constant
 * @type {number}
 */
export declare const CRLReason_weakAlgorithmOrKey: CRLReason;
/**
 * @summary weakAlgorithmOrKey
 * @constant
 * @type {number}
 */
export declare const weakAlgorithmOrKey: CRLReason;
/**
 * @summary Decodes an ASN.1 element into a(n) CRLReason
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {CRLReason} The decoded data structure.
 */
export declare function _decode_CRLReason(el: _Element): number;
/**
 * @summary Encodes a(n) CRLReason 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 CRLReason, encoded as an ASN.1 Element.
 */
export declare function _encode_CRLReason(value: CRLReason, elGetter: $.ASN1Encoder<CRLReason>): _Element;
