import { ASN1Element as _Element } from '@wildboar/asn1';
import * as $ from '@wildboar/asn1/functional';
import { AARQ_apdu } from '../ACSE-1/AARQ-apdu.ta.mjs';
import { AARE_apdu } from '../ACSE-1/AARE-apdu.ta.mjs';
import { RLRQ_apdu } from '../ACSE-1/RLRQ-apdu.ta.mjs';
import { RLRE_apdu } from '../ACSE-1/RLRE-apdu.ta.mjs';
import { ABRT_apdu } from '../ACSE-1/ABRT-apdu.ta.mjs';
import { A_DT_apdu } from '../ACSE-1/A-DT-apdu.ta.mjs';
import { ACRQ_apdu } from '../ACSE-1/ACRQ-apdu.ta.mjs';
import { ACRP_apdu } from '../ACSE-1/ACRP-apdu.ta.mjs';
/**
 * @summary ACSE_apdu
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * ACSE-apdu  ::=  CHOICE {
 *   aarq  AARQ-apdu,
 *   aare  AARE-apdu,
 *   rlrq  RLRQ-apdu,
 *   rlre  RLRE-apdu,
 *   abrt  ABRT-apdu,
 *   ...,
 *   --  Extensions for higher level association FU
 *   adt   A-DT-apdu,
 *   acrq  ACRQ-apdu,
 *   acrp  ACRP-apdu
 * }
 * ```
 */
export type ACSE_apdu = {
    aarq: AARQ_apdu;
} | {
    aare: AARE_apdu;
} | {
    rlrq: RLRQ_apdu;
} | {
    rlre: RLRE_apdu;
} | {
    abrt: ABRT_apdu;
} | {
    adt: A_DT_apdu;
} | {
    acrq: ACRQ_apdu;
} | {
    acrp: ACRP_apdu;
} | _Element;
/**
 * @summary Decodes an ASN.1 element into a(n) ACSE_apdu
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {ACSE_apdu} The decoded data structure.
 */
export declare function _decode_ACSE_apdu(el: _Element): ACSE_apdu;
/**
 * @summary Encodes a(n) ACSE_apdu 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 ACSE_apdu, encoded as an ASN.1 Element.
 */
export declare function _encode_ACSE_apdu(value: ACSE_apdu, elGetter: $.ASN1Encoder<ACSE_apdu>): _Element;
//# sourceMappingURL=ACSE-apdu.ta.d.mts.map