import { ASN1Element as _Element } from '@wildboar/asn1';
import * as $ from '@wildboar/asn1/functional';
import { Invoke } from '../Remote-Operations-Generic-ROS-PDUs/Invoke.ta.mjs';
import { ReturnResult } from '../Remote-Operations-Generic-ROS-PDUs/ReturnResult.ta.mjs';
import { ReturnError } from '../Remote-Operations-Generic-ROS-PDUs/ReturnError.ta.mjs';
import { Reject } from '../Remote-Operations-Generic-ROS-PDUs/Reject.ta.mjs';
/**
 * @summary ROS
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable}  ::=
 *   CHOICE {
 *   invoke        [1]  Invoke{{InvokeIdSet}, {Invokable}},
 *   returnResult  [2]  ReturnResult{{Returnable}},
 *   returnError   [3]  ReturnError{{Errors  {{Returnable}}}},
 *   reject        [4]  Reject
 * }
 * (CONSTRAINED BY { -- must conform to the above definition --} !
 *  RejectProblem:general-unrecognizedPDU)
 * ```
 */
export type ROS = {
    invoke: Invoke;
} | {
    returnResult: ReturnResult;
} | {
    returnError: ReturnError;
} | {
    reject: Reject;
};
/**
 * @summary Decodes an ASN.1 element into a(n) ROS
 * @function
 * @param {_Element} el The element being decoded.
 * @returns {ROS} The decoded data structure.
 */
export declare function _decode_ROS(el: _Element): ROS;
/**
 * @summary Encodes a(n) ROS 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 ROS, encoded as an ASN.1 Element.
 */
export declare function _encode_ROS(value: ROS, elGetter: $.ASN1Encoder<ROS>): _Element;
//# sourceMappingURL=ROS.ta.d.mts.map