"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.wrapSharedRef = void 0;
const Object_1 = require("../Object");
const MethodNotImplementedError_1 = require("../exception/MethodNotImplementedError");
function wrapSharedRef(data, _system) {
    const _data = new Object_1.Object_(data);
    return {
        get(name) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        set(name, data) {
            return _data.deepSet(['current', name], data);
        },
        delete(name) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        hasKey(name) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        keys() {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        deepGet(path) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        deepSet(path, data) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        deepDelete(path) {
            throw new MethodNotImplementedError_1.MethodNotImplementedError();
        },
        subscribe(path, key, listener) {
            return _data.subscribe(['current', ...path], key, listener);
        },
    };
}
exports.wrapSharedRef = wrapSharedRef;
//# sourceMappingURL=Object.js.map