import { ASN1Element as _Element } from 'asn1-ts';
import * as $ from 'asn1-ts/dist/node/functional';
import { Simply_encoded_data } from '../ISO8823-PRESENTATION/Simply-encoded-data.ta';
export { Simply_encoded_data, _decode_Simply_encoded_data, _encode_Simply_encoded_data, } from '../ISO8823-PRESENTATION/Simply-encoded-data.ta';
import { Fully_encoded_data } from '../ISO8823-PRESENTATION/Fully-encoded-data.ta';
export { Fully_encoded_data, _decode_Fully_encoded_data, _encode_Fully_encoded_data, } from '../ISO8823-PRESENTATION/Fully-encoded-data.ta';
/**
 * @summary User_data
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * User-data  ::=  CHOICE {
 *   simply-encoded-data  [APPLICATION 0] IMPLICIT Simply-encoded-data,
 *   fully-encoded-data   [APPLICATION 1] IMPLICIT Fully-encoded-data,
 *   ...
 * }
 * ```
 */
export declare type User_data = {
    simply_encoded_data: Simply_encoded_data;
} | {
    fully_encoded_data: Fully_encoded_data;
} | _Element;
/**
 * @summary Decodes an ASN.1 element into a(n) User_data
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {User_data} The decoded data structure.
 */
export declare function _decode_User_data(el: _Element): User_data;
/**
 * @summary Encodes a(n) User_data 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 User_data, encoded as an ASN.1 Element.
 */
export declare function _encode_User_data(value: User_data, elGetter: $.ASN1Encoder<User_data>): _Element;
