import * as v from "@zwave-js/core/validation";
export function validateArgs_DoorLockCCAPI_set() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function set(mode) {
                v.assert(v.enum({ kind: "parameter", name: "mode" }, "DoorLockMode", [0, 1, 16, 17, 32, 33, 254, 255])(mode));
                return __decoratedMethod.call(this, mode);
            };
        }
    };
}
export function validateArgs_DoorLockCCAPI_setConfiguration() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setConfiguration(configuration) {
                v.assert(v.oneOf({ kind: "parameter", name: "configuration" }, "DoorLockCCConfigurationSetOptions", v.allOf({ kind: "parameter", name: "configuration" }, undefined, v.object({ kind: "parameter", name: "configuration" }, '<anonymous object>', { "operationType": v.literal({ kind: "property", name: "operationType" }, 2), "lockTimeoutConfiguration": v.primitive({ kind: "property", name: "lockTimeoutConfiguration" }, "number") }), v.object({ kind: "parameter", name: "configuration" }, '<anonymous object>', { "outsideHandlesCanOpenDoorConfiguration": v.tuple({ kind: "property", name: "outsideHandlesCanOpenDoorConfiguration" }, 'import("/home/runner/work/zwave-js/zwave-js/packages/cc/src/lib/_Types").DoorHandleStatus', v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean")), "insideHandlesCanOpenDoorConfiguration": v.tuple({ kind: "property", name: "insideHandlesCanOpenDoorConfiguration" }, 'import("/home/runner/work/zwave-js/zwave-js/packages/cc/src/lib/_Types").DoorHandleStatus', v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean")), "autoRelockTime": v.optional({ kind: "property", name: "autoRelockTime" }, v.primitive({ kind: "property", name: "autoRelockTime" }, "number")), "holdAndReleaseTime": v.optional({ kind: "property", name: "holdAndReleaseTime" }, v.primitive({ kind: "property", name: "holdAndReleaseTime" }, "number")), "twistAssist": v.optional({ kind: "property", name: "twistAssist" }, v.primitive({ kind: "property", name: "twistAssist" }, "boolean")), "blockToBlock": v.optional({ kind: "property", name: "blockToBlock" }, v.primitive({ kind: "property", name: "blockToBlock" }, "boolean")) })), v.allOf({ kind: "parameter", name: "configuration" }, undefined, v.object({ kind: "parameter", name: "configuration" }, '<anonymous object>', { "operationType": v.literal({ kind: "property", name: "operationType" }, 1), "lockTimeoutConfiguration": v.undefined({ kind: "property", name: "lockTimeoutConfiguration" }) }), v.object({ kind: "parameter", name: "configuration" }, '<anonymous object>', { "outsideHandlesCanOpenDoorConfiguration": v.tuple({ kind: "property", name: "outsideHandlesCanOpenDoorConfiguration" }, 'import("/home/runner/work/zwave-js/zwave-js/packages/cc/src/lib/_Types").DoorHandleStatus', v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "outsideHandlesCanOpenDoorConfiguration" }, "boolean")), "insideHandlesCanOpenDoorConfiguration": v.tuple({ kind: "property", name: "insideHandlesCanOpenDoorConfiguration" }, 'import("/home/runner/work/zwave-js/zwave-js/packages/cc/src/lib/_Types").DoorHandleStatus', v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean"), v.primitive({ kind: "item", name: "insideHandlesCanOpenDoorConfiguration" }, "boolean")), "autoRelockTime": v.optional({ kind: "property", name: "autoRelockTime" }, v.primitive({ kind: "property", name: "autoRelockTime" }, "number")), "holdAndReleaseTime": v.optional({ kind: "property", name: "holdAndReleaseTime" }, v.primitive({ kind: "property", name: "holdAndReleaseTime" }, "number")), "twistAssist": v.optional({ kind: "property", name: "twistAssist" }, v.primitive({ kind: "property", name: "twistAssist" }, "boolean")), "blockToBlock": v.optional({ kind: "property", name: "blockToBlock" }, v.primitive({ kind: "property", name: "blockToBlock" }, "boolean")) })))(configuration));
                return __decoratedMethod.call(this, configuration);
            };
        }
    };
}
//# sourceMappingURL=DoorLockCC._validateArgs.js.map