"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerDeserializer = exports.registerSerializer = exports.GlobalRegistry = exports.Registry = void 0;
class Registry {
    constructor() {
        Object.defineProperty(this, "serializers", {
            enumerable: true,
            configurable: true,
            writable: true,
            value: new Map()
        });
        Object.defineProperty(this, "deserializers", {
            enumerable: true,
            configurable: true,
            writable: true,
            value: new Map()
        });
    }
    registerSerializer(ctor, serialize) {
        this.serializers.set(ctor, serialize);
    }
    registerDeserializer(ctor, deserialize) {
        this.deserializers.set(ctor, deserialize);
    }
}
exports.Registry = Registry;
exports.GlobalRegistry = new Registry();
exports.registerSerializer = exports.GlobalRegistry.registerSerializer.bind(exports.GlobalRegistry);
exports.registerDeserializer = exports.GlobalRegistry.registerDeserializer.bind(exports.GlobalRegistry);