"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
function _export(target, all) {
    for(var name in all)Object.defineProperty(target, name, {
        enumerable: true,
        get: Object.getOwnPropertyDescriptor(all, name).get
    });
}
_export(exports, {
    get hasValidParameter () {
        return hasValidParameter;
    },
    get holder () {
        return holder;
    },
    get isRootInstance () {
        return isRootInstance;
    },
    get registerAsRootInstance () {
        return registerAsRootInstance;
    },
    get rootInstanceSymbol () {
        return rootInstanceSymbol;
    }
});
const holder = new WeakMap();
const rootInstanceSymbol = Symbol('rootInstance');
function registerAsRootInstance(object) {
    holder.set(object, true);
}
function hasValidParameter(rootSymbol) {
    return rootSymbol === rootInstanceSymbol;
}
function isRootInstance(object) {
    return holder.has(object);
}
