import { ASN1Element as _Element } from "@wildboar/asn1";
import * as $ from "@wildboar/asn1/functional";
import { IssuerSerialNumber } from "../PKI-Stub/IssuerSerialNumber.ta.mjs";
import { FingerPrint } from "../PKI-Stub/FingerPrint.ta.mjs";
import { Certificate } from "../PKI-Stub/Certificate.ta.mjs";
import { PublicKey } from "../PKI-Stub/PublicKey.ta.mjs";
/**
 * @summary PKCertIdentifier
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * PKCertIdentifier  ::=  CHOICE {
 *   issuerSerialNumber         IssuerSerialNumber,
 *   fingerprintPKC        [0]  IMPLICIT FingerPrint {Certificate},
 *   fingerprintPK         [1]  IMPLICIT FingerPrint {PublicKey},
 *   ... }
 * ```
 */
export type PKCertIdentifier = {
    issuerSerialNumber: IssuerSerialNumber;
} | {
    fingerprintPKC: FingerPrint<Certificate>;
} | {
    fingerprintPK: FingerPrint<PublicKey>;
} | _Element;
/**
 * @summary Decodes an ASN.1 element into a(n) PKCertIdentifier
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {PKCertIdentifier} The decoded data structure.
 */
export declare function _decode_PKCertIdentifier(el: _Element): PKCertIdentifier;
/**
 * @summary Encodes a(n) PKCertIdentifier 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 PKCertIdentifier, encoded as an ASN.1 Element.
 */
export declare function _encode_PKCertIdentifier(value: PKCertIdentifier, elGetter: $.ASN1Encoder<PKCertIdentifier>): _Element;
//# sourceMappingURL=PKCertIdentifier.ta.d.mts.map