"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GenericVisitor = exports.GenericSeed = void 0; class GenericSeed { constructor(visitor = new GenericVisitor()) { Object.defineProperty(this, "visitor", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.visitor = visitor; } static deserialize(deserializer, visitor = new GenericVisitor()) { return deserializer.deserializeAny(visitor); } deserialize(deserializer) { return GenericSeed.deserialize(deserializer, this.visitor); } } exports.GenericSeed = GenericSeed; class GenericVisitor { visitBoolean(value) { return value; } visitNumber(value) { return value; } visitBigInt(value) { return value; } visitString(value) { return value; } visitSymbol(value) { return value; } visitNull() { return null; } visitObject(access) { const result = []; let entry; while ((entry = access.nextEntry()) && !entry.done) { result.push(entry.value); } return Object.fromEntries(result); } visitIterable(access) { const result = []; let element; while ((element = access.nextElement())) { result.push(element); } return result; } } exports.GenericVisitor = GenericVisitor;