"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSymbolAttachmentClassDecorator = createSymbolAttachmentClassDecorator;
exports.createRegistryClassDecorator = createRegistryClassDecorator;
exports.getRegisteredClasses = getRegisteredClasses;
function __assignType(fn, args) {
    fn.__type = args;
    return fn;
}
/*@ts-ignore*/
var { __ΩClassType } = require('@deepkit/core');
function createSymbolAttachmentClassDecorator(aSymbol) {
    return __assignType(() => {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        return __assignType((target) => {
            target[aSymbol] = aSymbol;
            return target;
        }, ['target', '', 'P"2!"/"']);
    }, ['', 'P!/!']);
}
createSymbolAttachmentClassDecorator.__type = ['aSymbol', 'createSymbolAttachmentClassDecorator', 'P+2!"/"'];
const DecoratorRegistry = (Map.Ω = [['+'], [() => __ΩClassType, 'n!F']], new Map());
function createRegistryClassDecorator(aSymbol) {
    return __assignType(() => {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        return __assignType((target) => {
            const classes = DecoratorRegistry.get(aSymbol) ?? [];
            classes.push(target);
            DecoratorRegistry.set(aSymbol, classes);
            return target;
        }, ['target', '', 'P"2!"/"']);
    }, ['', 'P!/!']);
}
createRegistryClassDecorator.__type = ['aSymbol', 'createRegistryClassDecorator', 'P+2!"/"'];
function getRegisteredClasses(aSymbol) {
    return DecoratorRegistry.get(aSymbol) ?? [];
}
getRegisteredClasses.__type = ['aSymbol', 'getRegisteredClasses', 'P+2!"F/"'];
//# sourceMappingURL=decorators.js.map