import * as __typia_transform__assertGuard from "typia/lib/internal/_assertGuard";
import typia from "typia";
export const assertLocation = (() => { const _io0 = input => "string" === typeof input.id && (null === input.size || "number" === typeof input.size) && (null === input.free || "number" === typeof input.free) && (null === input.capacity || "number" === typeof input.capacity) && (null === input.available || "number" === typeof input.available) && (null === input.cache || "boolean" === typeof input.cache) && "string" === typeof input.origin && "string" === typeof input.zone && (Array.isArray(input.allows) && input.allows.every(elem => "string" === typeof elem)); const _ao0 = (input, _path, _exceptionable = true) => ("string" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".id",
    expected: "string",
    value: input.id
}, _errorFactory)) && (null === input.size || "number" === typeof input.size || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".size",
    expected: "(null | number)",
    value: input.size
}, _errorFactory)) && (null === input.free || "number" === typeof input.free || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".free",
    expected: "(null | number)",
    value: input.free
}, _errorFactory)) && (null === input.capacity || "number" === typeof input.capacity || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".capacity",
    expected: "(null | number)",
    value: input.capacity
}, _errorFactory)) && (null === input.available || "number" === typeof input.available || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".available",
    expected: "(null | number)",
    value: input.available
}, _errorFactory)) && (null === input.cache || "boolean" === typeof input.cache || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".cache",
    expected: "(boolean | null)",
    value: input.cache
}, _errorFactory)) && ("string" === typeof input.origin || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".origin",
    expected: "string",
    value: input.origin
}, _errorFactory)) && ("string" === typeof input.zone || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".zone",
    expected: "string",
    value: input.zone
}, _errorFactory)) && ((Array.isArray(input.allows) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".allows",
    expected: "Array<string>",
    value: input.allows
}, _errorFactory)) && input.allows.every((elem, _index2) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".allows[" + _index2 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".allows",
    expected: "Array<string>",
    value: input.allows
}, _errorFactory)); const __is = input => "object" === typeof input && null !== input && _io0(input); let _errorFactory; return (input, errorFactory) => {
    if (false === __is(input)) {
        _errorFactory = errorFactory;
        ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || __typia_transform__assertGuard._assertGuard(true, {
            method: "typia.createAssert",
            path: _path + "",
            expected: "Location",
            value: input
        }, _errorFactory)) && _ao0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
            method: "typia.createAssert",
            path: _path + "",
            expected: "Location",
            value: input
        }, _errorFactory))(input, "$input", true);
    }
    return input;
}; })();
