import * as v from "@zwave-js/core/validation";
export function validateArgs_NotificationCCAPI_sendReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "alarmType": v.optional({ kind: "property", name: "alarmType" }, v.primitive({ kind: "property", name: "alarmType" }, "number")), "alarmLevel": v.optional({ kind: "property", name: "alarmLevel" }, v.primitive({ kind: "property", name: "alarmLevel" }, "number")), "notificationType": v.optional({ kind: "property", name: "notificationType" }, v.primitive({ kind: "property", name: "notificationType" }, "number")), "notificationEvent": v.optional({ kind: "property", name: "notificationEvent" }, v.primitive({ kind: "property", name: "notificationEvent" }, "number")), "notificationStatus": v.optional({ kind: "property", name: "notificationStatus" }, v.primitive({ kind: "property", name: "notificationStatus" }, "number")), "eventParameters": v.optional({ kind: "property", name: "eventParameters" }, v.uint8array({ kind: "property", name: "eventParameters" })), "sequenceNumber": v.optional({ kind: "property", name: "sequenceNumber" }, v.primitive({ kind: "property", name: "sequenceNumber" }, "number")) })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_NotificationCCAPI_get() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function get(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "NotificationCCGetOptions", v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "alarmType": v.primitive({ kind: "property", name: "alarmType" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "notificationType": v.primitive({ kind: "property", name: "notificationType" }, "number"), "notificationEvent": v.optional({ kind: "property", name: "notificationEvent" }, v.primitive({ kind: "property", name: "notificationEvent" }, "number")) }))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_NotificationCCAPI_set() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function set(notificationType, notificationStatus) {
                v.assert(v.primitive({ kind: "parameter", name: "notificationType" }, "number")(notificationType), v.primitive({ kind: "parameter", name: "notificationStatus" }, "boolean")(notificationStatus));
                return __decoratedMethod.call(this, notificationType, notificationStatus);
            };
        }
    };
}
export function validateArgs_NotificationCCAPI_getSupportedEvents() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getSupportedEvents(notificationType) {
                v.assert(v.primitive({ kind: "parameter", name: "notificationType" }, "number")(notificationType));
                return __decoratedMethod.call(this, notificationType);
            };
        }
    };
}
//# sourceMappingURL=NotificationCC._validateArgs.js.map