import * as __typia_transform__assertGuard from "typia/lib/internal/_assertGuard.js";
import * as typia from 'typia';
export const isReferenceSchema = (() => { const _io0 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io1(input.contains)); const _io1 = input => "object" === typeof input.external && null !== input.external && _io2(input.external) && ("object" === typeof input.digest && null !== input.digest && _io6(input.digest)) && (undefined === input.encryptionAlgorithm || "object" === typeof input.encryptionAlgorithm && null !== input.encryptionAlgorithm && _io9(input.encryptionAlgorithm)); const _io2 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io3(input.contains)); const _io3 = input => "object" === typeof input.url && null !== input.url && _io4(input.url) && ("object" === typeof input.contentType && null !== input.contentType && _io5(input.contentType)); const _io4 = input => "string" === input.type && "utf8" === input.kind && "string" === typeof input.value; const _io5 = input => "string" === input.type && "utf8" === input.kind && "string" === typeof input.value; const _io6 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io7(input.contains)); const _io7 = input => "object" === typeof input.digestAlgorithm && null !== input.digestAlgorithm && _io8(input.digestAlgorithm) && true; const _io8 = input => "oid" === input.type && "string" === typeof input.oid; const _io9 = input => "oid" === input.type && "string" === typeof input.oid; return input => "object" === typeof input && null !== input && _io0(input); })();
export const assertReference = (() => { const _io0 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io1(input.contains)); const _io1 = input => "object" === typeof input.external && null !== input.external && _io2(input.external) && ("object" === typeof input.digest && null !== input.digest && _io6(input.digest)) && (undefined === input.encryptionAlgorithm || "object" === typeof input.encryptionAlgorithm && null !== input.encryptionAlgorithm && _io9(input.encryptionAlgorithm)); const _io2 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io3(input.contains)); const _io3 = input => "object" === typeof input.url && null !== input.url && _io4(input.url) && ("object" === typeof input.contentType && null !== input.contentType && _io5(input.contentType)); const _io4 = input => "string" === input.type && "utf8" === input.kind && "string" === typeof input.value; const _io5 = input => "string" === input.type && "utf8" === input.kind && "string" === typeof input.value; const _io6 = input => "struct" === input.type && (Array.isArray(input.fieldNames) && input.fieldNames.every(elem => "string" === typeof elem)) && ("object" === typeof input.contains && null !== input.contains && _io7(input.contains)); const _io7 = input => "object" === typeof input.digestAlgorithm && null !== input.digestAlgorithm && _io8(input.digestAlgorithm) && true; const _io8 = input => "oid" === input.type && "string" === typeof input.oid; const _io9 = input => "oid" === input.type && "string" === typeof input.oid; const _ao0 = (input, _path, _exceptionable = true) => ("struct" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"struct\"",
    value: input.type
}, _errorFactory)) && ((Array.isArray(input.fieldNames) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && input.fieldNames.every((elem, _index4) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames[" + _index4 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && (("object" === typeof input.contains && null !== input.contains || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type",
    value: input.contains
}, _errorFactory)) && _ao1(input.contains, _path + ".contains", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type",
    value: input.contains
}, _errorFactory)); const _ao1 = (input, _path, _exceptionable = true) => (("object" === typeof input.external && null !== input.external || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".external",
    expected: "__type.o1",
    value: input.external
}, _errorFactory)) && _ao2(input.external, _path + ".external", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".external",
    expected: "__type.o1",
    value: input.external
}, _errorFactory)) && (("object" === typeof input.digest && null !== input.digest || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".digest",
    expected: "__type.o5",
    value: input.digest
}, _errorFactory)) && _ao6(input.digest, _path + ".digest", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".digest",
    expected: "__type.o5",
    value: input.digest
}, _errorFactory)) && (undefined === input.encryptionAlgorithm || ("object" === typeof input.encryptionAlgorithm && null !== input.encryptionAlgorithm || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".encryptionAlgorithm",
    expected: "(__type.o8 | undefined)",
    value: input.encryptionAlgorithm
}, _errorFactory)) && _ao9(input.encryptionAlgorithm, _path + ".encryptionAlgorithm", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".encryptionAlgorithm",
    expected: "(__type.o8 | undefined)",
    value: input.encryptionAlgorithm
}, _errorFactory)); const _ao2 = (input, _path, _exceptionable = true) => ("struct" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"struct\"",
    value: input.type
}, _errorFactory)) && ((Array.isArray(input.fieldNames) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && input.fieldNames.every((elem, _index5) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames[" + _index5 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && (("object" === typeof input.contains && null !== input.contains || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type.o2",
    value: input.contains
}, _errorFactory)) && _ao3(input.contains, _path + ".contains", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type.o2",
    value: input.contains
}, _errorFactory)); const _ao3 = (input, _path, _exceptionable = true) => (("object" === typeof input.url && null !== input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".url",
    expected: "__type.o3",
    value: input.url
}, _errorFactory)) && _ao4(input.url, _path + ".url", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".url",
    expected: "__type.o3",
    value: input.url
}, _errorFactory)) && (("object" === typeof input.contentType && null !== input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contentType",
    expected: "__type.o4",
    value: input.contentType
}, _errorFactory)) && _ao5(input.contentType, _path + ".contentType", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contentType",
    expected: "__type.o4",
    value: input.contentType
}, _errorFactory)); const _ao4 = (input, _path, _exceptionable = true) => ("string" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"string\"",
    value: input.type
}, _errorFactory)) && ("utf8" === input.kind || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".kind",
    expected: "\"utf8\"",
    value: input.kind
}, _errorFactory)) && ("string" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".value",
    expected: "string",
    value: input.value
}, _errorFactory)); const _ao5 = (input, _path, _exceptionable = true) => ("string" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"string\"",
    value: input.type
}, _errorFactory)) && ("utf8" === input.kind || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".kind",
    expected: "\"utf8\"",
    value: input.kind
}, _errorFactory)) && ("string" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".value",
    expected: "string",
    value: input.value
}, _errorFactory)); const _ao6 = (input, _path, _exceptionable = true) => ("struct" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"struct\"",
    value: input.type
}, _errorFactory)) && ((Array.isArray(input.fieldNames) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && input.fieldNames.every((elem, _index6) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames[" + _index6 + "]",
    expected: "string",
    value: elem
}, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".fieldNames",
    expected: "Array<string>",
    value: input.fieldNames
}, _errorFactory)) && (("object" === typeof input.contains && null !== input.contains || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type.o6",
    value: input.contains
}, _errorFactory)) && _ao7(input.contains, _path + ".contains", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".contains",
    expected: "__type.o6",
    value: input.contains
}, _errorFactory)); const _ao7 = (input, _path, _exceptionable = true) => (("object" === typeof input.digestAlgorithm && null !== input.digestAlgorithm || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".digestAlgorithm",
    expected: "__type.o7",
    value: input.digestAlgorithm
}, _errorFactory)) && _ao8(input.digestAlgorithm, _path + ".digestAlgorithm", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".digestAlgorithm",
    expected: "__type.o7",
    value: input.digestAlgorithm
}, _errorFactory)) && true; const _ao8 = (input, _path, _exceptionable = true) => ("oid" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"oid\"",
    value: input.type
}, _errorFactory)) && ("string" === typeof input.oid || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".oid",
    expected: "string",
    value: input.oid
}, _errorFactory)); const _ao9 = (input, _path, _exceptionable = true) => ("oid" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".type",
    expected: "\"oid\"",
    value: input.type
}, _errorFactory)) && ("string" === typeof input.oid || __typia_transform__assertGuard._assertGuard(_exceptionable, {
    method: "typia.createAssert",
    path: _path + ".oid",
    expected: "string",
    value: input.oid
}, _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: "ReferenceSchemaNormalized",
            value: input
        }, _errorFactory)) && _ao0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
            method: "typia.createAssert",
            path: _path + "",
            expected: "ReferenceSchemaNormalized",
            value: input
        }, _errorFactory))(input, "$input", true);
    }
    return input;
}; })();
//# sourceMappingURL=asn1.generated.js.map