import { Timeout } from "@zwave-js/core";
import * as v from "@zwave-js/core/validation";
export function validateArgs_ProtectionCCAPI_set() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function set(local, rf) {
                v.assert(v.enum({ kind: "parameter", name: "local" }, "LocalProtectionState", [0, 1, 2])(local), v.optional({ kind: "parameter", name: "rf" }, v.oneOf({ kind: "parameter", name: "rf" }, undefined, v.literal({ kind: "parameter", name: "rf" }, 0), v.literal({ kind: "parameter", name: "rf" }, 1), v.literal({ kind: "parameter", name: "rf" }, 2)))(rf));
                return __decoratedMethod.call(this, local, rf);
            };
        }
    };
}
export function validateArgs_ProtectionCCAPI_setExclusiveControl() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setExclusiveControl(nodeId) {
                v.assert(v.primitive({ kind: "parameter", name: "nodeId" }, "number")(nodeId));
                return __decoratedMethod.call(this, nodeId);
            };
        }
    };
}
export function validateArgs_ProtectionCCAPI_setTimeout() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setTimeout(timeout) {
                v.assert(v.class({ kind: "parameter", name: "timeout" }, "Timeout", Timeout)(timeout));
                return __decoratedMethod.call(this, timeout);
            };
        }
    };
}
//# sourceMappingURL=ProtectionCC._validateArgs.js.map