import { BOOLEAN } from '@wildboar/asn1';
import * as $ from '@wildboar/asn1/functional';
import { Priority } from '../Remote-Operations-Information-Objects/Priority.ta.mjs';
import { Code } from '../Remote-Operations-Information-Objects/Code.ta.mjs';
/**
 * @summary ERROR
 * @description
 *
 * ### ASN.1 Definition:
 *
 * ```asn1
 * ERROR ::= CLASS {
 *   &ParameterType          OPTIONAL,
 *   &parameterTypeOptional  BOOLEAN OPTIONAL,
 *   &ErrorPriority          Priority OPTIONAL,
 *   &errorCode              Code UNIQUE OPTIONAL
 * }
 * WITH SYNTAX {
 *   [PARAMETER &ParameterType
 *    [OPTIONAL &parameterTypeOptional]]
 *   [PRIORITY &ErrorPriority]
 *   [CODE &errorCode]
 * }
 * ```
 *
 * @interface
 */
export interface ERROR<ParameterType = any> {
    /**
     * @summary A fixed string that can be used for external programs to determine the object class of this object.
     */
    readonly class: 'ERROR';
    /**
     * @summary A map of type fields to their corresponding decoders.
     */
    readonly decoderFor: Partial<{
        [_K in keyof ERROR<ParameterType>]: $.ASN1Decoder<ERROR<ParameterType>[_K]>;
    }>;
    /**
     * @summary A map of type fields to their corresponding encoders.
     */
    readonly encoderFor: Partial<{
        [_K in keyof ERROR<ParameterType>]: $.ASN1Encoder<ERROR<ParameterType>[_K]>;
    }>;
    /**
     * @summary &ParameterType
     */
    readonly '&ParameterType': ParameterType;
    /**
     * @summary &parameterTypeOptional
     */
    readonly '&parameterTypeOptional'?: BOOLEAN;
    /**
     * @summary &ErrorPriority
     */
    readonly '&ErrorPriority'?: Priority;
    /**
     * @summary &errorCode
     */
    readonly '&errorCode'?: Code;
}
//# sourceMappingURL=ERROR.oca.d.mts.map