/** Copyright (C) 2020-2025 Kedron Holdings LLC, All Rights Reserved. This file is part of Reactor.
 *  For info and license terms please see https://reactor.toggledbits.com/
 *  ------------------------------------------------------------------------------
*/
function a8_0x1acf() {
    const _0x3d9c84 = [
        'undefined',
        'publish',
        '77033dAejau',
        'toString',
        'warn',
        '623609giTsFl',
        '459819MptFzE',
        '%1\x20publishing\x20without\x20specifying\x20event\x20type',
        '8OdQBJe',
        '__proto__',
        'disconnect',
        '554900gRccgG',
        '4750wPzdXW',
        'update',
        '1720110FyfLDl',
        '678VEnXyL',
        'send',
        'getBusName',
        'log',
        '6tUzkGn',
        '1415704kITtzh',
        'Can\x27t\x20construct\x20interface'
    ];
    a8_0x1acf = function () {
        return _0x3d9c84;
    };
    return a8_0x1acf();
}
const a8_0x47acad = a8_0x1bfa;
function a8_0x1bfa(_0x515b94, _0x3be22d) {
    const _0x1acfe4 = a8_0x1acf();
    return a8_0x1bfa = function (_0x1bfacb, _0x9c85ef) {
        _0x1bfacb = _0x1bfacb - 0x105;
        let _0xabee82 = _0x1acfe4[_0x1bfacb];
        return _0xabee82;
    }, a8_0x1bfa(_0x515b94, _0x3be22d);
}
(function (_0x2e083a, _0x948f0d) {
    const _0x30b8f3 = a8_0x1bfa, _0x5e9e4c = _0x2e083a();
    while (!![]) {
        try {
            const _0x187f3e = parseInt(_0x30b8f3(0x10a)) / 0x1 + -parseInt(_0x30b8f3(0x114)) / 0x2 * (-parseInt(_0x30b8f3(0x117)) / 0x3) + -parseInt(_0x30b8f3(0x106)) / 0x4 + -parseInt(_0x30b8f3(0x113)) / 0x5 + -parseInt(_0x30b8f3(0x105)) / 0x6 * (parseInt(_0x30b8f3(0x10d)) / 0x7) + parseInt(_0x30b8f3(0x110)) / 0x8 * (parseInt(_0x30b8f3(0x10e)) / 0x9) + parseInt(_0x30b8f3(0x116)) / 0xa;
            if (_0x187f3e === _0x948f0d)
                break;
            else
                _0x5e9e4c['push'](_0x5e9e4c['shift']());
        } catch (_0x2c4353) {
            _0x5e9e4c['push'](_0x5e9e4c['shift']());
        }
    }
}(a8_0x1acf, 0x4510c));
export const version = 0x5263;
import a8_0xf7bf97 from './MessageBus.js';
class Observable {
    constructor() {
        const _0x443aa9 = a8_0x1bfa;
        throw new Error(_0x443aa9(0x107));
    }
    [a8_0x47acad(0x119)]() {
        const _0x44e7c0 = a8_0x47acad;
        if (!this[_0x44e7c0(0x111)][_0x44e7c0(0x10b)])
            throw new TypeError('Current\x20(Observable)\x20object\x20does\x20not\x20implement\x20getBusName()\x20or\x20toString()');
        return this[_0x44e7c0(0x10b)]();
    }
    [a8_0x47acad(0x109)](_0x51b20, _0x33e9f8, ..._0x49cc30) {
        const _0x9d2573 = a8_0x47acad;
        _0x51b20 = _0x51b20 || this;
        _0x9d2573(0x108) === typeof _0x33e9f8 && (this[_0x9d2573(0x11a)] ? this[_0x9d2573(0x11a)][_0x9d2573(0x10c)](_0x9d2573(0x10f), this) : console['log'](String(this) + '\x20publishing\x20without\x20specifying\x20event\x20type'), _0x33e9f8 = _0x9d2573(0x115));
        let _0x20cd72 = {
            'sender': this,
            'currentSender': this,
            'type': _0x33e9f8,
            'data': _0x51b20,
            'args': _0x49cc30
        };
        a8_0xf7bf97[_0x9d2573(0x118)](this['getBusName'](), this, _0x20cd72);
    }
    [a8_0x47acad(0x112)]() {
        const _0x26b96c = a8_0x47acad;
        a8_0xf7bf97['disconnect'](this[_0x26b96c(0x119)](), ![], ![]);
    }
}
export default Observable;