import { Duration } from "@zwave-js/core";
import * as v from "@zwave-js/core/validation";
export function validateArgs_WindowCoveringCCAPI_get() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function get(parameter) {
                v.assert(v.enum({ kind: "parameter", name: "parameter" }, "WindowCoveringParameter", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])(parameter));
                return __decoratedMethod.call(this, parameter);
            };
        }
    };
}
export function validateArgs_WindowCoveringCCAPI_set() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function set(targetValues, duration) {
                v.assert(v.array({ kind: "parameter", name: "targetValues" }, '__type', v.object({ kind: "item", name: "targetValues" }, '<anonymous object>', { "parameter": v.enum({ kind: "property", name: "parameter" }, "WindowCoveringParameter"), "value": v.primitive({ kind: "property", name: "value" }, "number") }))(targetValues), v.optional({ kind: "parameter", name: "duration" }, v.oneOf({ kind: "parameter", name: "duration" }, undefined, v.primitive({ kind: "parameter", name: "duration" }, "string"), v.class({ kind: "parameter", name: "duration" }, "Duration", Duration)))(duration));
                return __decoratedMethod.call(this, targetValues, duration);
            };
        }
    };
}
export function validateArgs_WindowCoveringCCAPI_startLevelChange() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function startLevelChange(parameter, direction, duration) {
                v.assert(v.enum({ kind: "parameter", name: "parameter" }, "WindowCoveringParameter", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])(parameter), v.oneOf({ kind: "parameter", name: "direction" }, undefined, v.literal({ kind: "parameter", name: "direction" }, "up"), v.literal({ kind: "parameter", name: "direction" }, "down"))(direction), v.optional({ kind: "parameter", name: "duration" }, v.oneOf({ kind: "parameter", name: "duration" }, undefined, v.primitive({ kind: "parameter", name: "duration" }, "string"), v.class({ kind: "parameter", name: "duration" }, "Duration", Duration)))(duration));
                return __decoratedMethod.call(this, parameter, direction, duration);
            };
        }
    };
}
export function validateArgs_WindowCoveringCCAPI_stopLevelChange() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function stopLevelChange(parameter) {
                v.assert(v.enum({ kind: "parameter", name: "parameter" }, "WindowCoveringParameter", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])(parameter));
                return __decoratedMethod.call(this, parameter);
            };
        }
    };
}
//# sourceMappingURL=WindowCoveringCC._validateArgs.js.map