import * as __typia_transform__assertGuard from "typia/lib/internal/_assertGuard";
import * as __typia_transform__accessExpressionAsString from "typia/lib/internal/_accessExpressionAsString";
import typia from 'typia';
export const assertGuardNxtExport = (() => { const _io0 = input => "number" === typeof input.version && (undefined === input.date || "string" === typeof input.date) && (undefined === input.root || Array.isArray(input.root) && input.root.every(elem => "string" === typeof elem)) && ("object" === typeof input.assets && null !== input.assets && false === Array.isArray(input.assets) && _io1(input.assets)) && (undefined === input.files || Array.isArray(input.files) && input.files.every(elem => "string" === typeof elem)); const _io1 = input => Object.keys(input).every(key => {
    const value = input[key];
    if (undefined === value)
        return true;
    return "object" === typeof value && null !== value && false === Array.isArray(value) && _io2(value);
}); const _io2 = input => (undefined === input._children || Array.isArray(input._children) && input._children.every(elem => "string" === typeof elem)) && Object.keys(input).every(key => {
    if (["_children"].some(prop => key === prop))
        return true;
    const value = input[key];
    if (undefined === value)
        return true;
    return true;
}); const _ao0 = (input, _path, _exceptionable = true) => ("number" === typeof input.version || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".version",
    expected: "number",
    value: input.version
}, _errorFactory)) && (undefined === input.date || "string" === typeof input.date || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".date",
    expected: "(string | undefined)",
    value: input.date
}, _errorFactory)) && (undefined === input.root || (Array.isArray(input.root) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".root",
    expected: "(Array<string> | undefined)",
    value: input.root
}, _errorFactory)) && input.root.every((elem, _index4) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".root[" + _index4 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".root",
    expected: "(Array<string> | undefined)",
    value: input.root
}, _errorFactory)) && (("object" === typeof input.assets && null !== input.assets && false === Array.isArray(input.assets) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".assets",
    expected: "__type",
    value: input.assets
}, _errorFactory)) && _ao1(input.assets, _path + ".assets", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".assets",
    expected: "__type",
    value: input.assets
}, _errorFactory)) && (undefined === input.files || (Array.isArray(input.files) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".files",
    expected: "(Array<string> | undefined)",
    value: input.files
}, _errorFactory)) && input.files.every((elem, _index5) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".files[" + _index5 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + ".files",
    expected: "(Array<string> | undefined)",
    value: input.files
}, _errorFactory)); const _ao1 = (input, _path, _exceptionable = true) => false === _exceptionable || Object.keys(input).every(key => {
    const value = input[key];
    if (undefined === value)
        return true;
    return ("object" === typeof value && null !== value && false === Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
        method: "typia.createAssertGuard",
        path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
        expected: "__type.o1",
        value: value
    }, _errorFactory)) && _ao2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
        method: "typia.createAssertGuard",
        path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),
        expected: "__type.o1",
        value: value
    }, _errorFactory);
}); const _ao2 = (input, _path, _exceptionable = true) => (undefined === input._children || (Array.isArray(input._children) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + "._children",
    expected: "(Array<string> | undefined)",
    value: input._children
}, _errorFactory)) && input._children.every((elem, _index6) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + "._children[" + _index6 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssertGuard",
    path: _path + "._children",
    expected: "(Array<string> | undefined)",
    value: input._children
}, _errorFactory)) && (false === _exceptionable || Object.keys(input).every(key => {
    if (["_children"].some(prop => key === prop))
        return true;
    const value = input[key];
    if (undefined === value)
        return true;
    return true;
})); 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.createAssertGuard",
            path: _path + "",
            expected: "NxtExport",
            value: input
        }, _errorFactory)) && _ao0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
            method: "typia.createAssertGuard",
            path: _path + "",
            expected: "NxtExport",
            value: input
        }, _errorFactory))(input, "$input", true);
    }
}; })();
export const assertGuardNxtImportMode = (() => { const __is = input => "clone" === input || "seed" === input || "overwrite" === input; let _errorFactory; return (input, errorFactory) => {
    if (false === __is(input)) {
        _errorFactory = errorFactory;
        ((input, _path, _exceptionable = true) => "clone" === input || "seed" === input || "overwrite" === input || __typia_transform__assertGuard._assertGuard(true, {
            method: "typia.createAssertGuard",
            path: _path + "",
            expected: "(\"clone\" | \"overwrite\" | \"seed\")",
            value: input
        }, _errorFactory))(input, "$input", true);
    }
}; })();
