"use strict";
/**
 * Signal K WASM Plugin System
 *
 * Main entry point for WASM/WASIX plugin infrastructure.
 * Exports all public APIs for WASM plugin management.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.initializeSubscriptionManager = exports.getSubscriptionManager = exports.callWasmExport = exports.createWasmImports = exports.createServerAPIBridge = exports.shutdownAllWasmPlugins = exports.getWasmPlugin = exports.getAllWasmPlugins = exports.setWasmPluginEnabled = exports.updateWasmPluginConfig = exports.handleWasmPluginCrash = exports.reloadWasmPlugin = exports.unloadWasmPlugin = exports.stopWasmPlugin = exports.startWasmPlugin = exports.registerWasmPlugin = exports.deletePluginVfs = exports.getVfsDiskUsage = exports.cleanupVfsTmp = exports.migrateFromNodeJs = exports.writePluginConfig = exports.readPluginConfig = exports.initializePluginVfs = exports.getPluginStoragePaths = exports.initializeWasmRuntime = exports.getWasmRuntime = exports.WasmRuntime = void 0;
exports.initializeWasm = initializeWasm;
const wasm_runtime_1 = require("./wasm-runtime");
const wasm_subscriptions_1 = require("./wasm-subscriptions");
/**
 * Initialize the WASM subsystem
 * Returns both runtime and subscription manager for assignment to app
 */
function initializeWasm() {
    return {
        wasmRuntime: (0, wasm_runtime_1.initializeWasmRuntime)(),
        wasmSubscriptionManager: (0, wasm_subscriptions_1.initializeSubscriptionManager)()
    };
}
// Runtime
var wasm_runtime_2 = require("./wasm-runtime");
Object.defineProperty(exports, "WasmRuntime", { enumerable: true, get: function () { return wasm_runtime_2.WasmRuntime; } });
Object.defineProperty(exports, "getWasmRuntime", { enumerable: true, get: function () { return wasm_runtime_2.getWasmRuntime; } });
Object.defineProperty(exports, "initializeWasmRuntime", { enumerable: true, get: function () { return wasm_runtime_2.initializeWasmRuntime; } });
// Storage
var wasm_storage_1 = require("./wasm-storage");
Object.defineProperty(exports, "getPluginStoragePaths", { enumerable: true, get: function () { return wasm_storage_1.getPluginStoragePaths; } });
Object.defineProperty(exports, "initializePluginVfs", { enumerable: true, get: function () { return wasm_storage_1.initializePluginVfs; } });
Object.defineProperty(exports, "readPluginConfig", { enumerable: true, get: function () { return wasm_storage_1.readPluginConfig; } });
Object.defineProperty(exports, "writePluginConfig", { enumerable: true, get: function () { return wasm_storage_1.writePluginConfig; } });
Object.defineProperty(exports, "migrateFromNodeJs", { enumerable: true, get: function () { return wasm_storage_1.migrateFromNodeJs; } });
Object.defineProperty(exports, "cleanupVfsTmp", { enumerable: true, get: function () { return wasm_storage_1.cleanupVfsTmp; } });
Object.defineProperty(exports, "getVfsDiskUsage", { enumerable: true, get: function () { return wasm_storage_1.getVfsDiskUsage; } });
Object.defineProperty(exports, "deletePluginVfs", { enumerable: true, get: function () { return wasm_storage_1.deletePluginVfs; } });
// Loader
var loader_1 = require("./loader");
Object.defineProperty(exports, "registerWasmPlugin", { enumerable: true, get: function () { return loader_1.registerWasmPlugin; } });
Object.defineProperty(exports, "startWasmPlugin", { enumerable: true, get: function () { return loader_1.startWasmPlugin; } });
Object.defineProperty(exports, "stopWasmPlugin", { enumerable: true, get: function () { return loader_1.stopWasmPlugin; } });
Object.defineProperty(exports, "unloadWasmPlugin", { enumerable: true, get: function () { return loader_1.unloadWasmPlugin; } });
Object.defineProperty(exports, "reloadWasmPlugin", { enumerable: true, get: function () { return loader_1.reloadWasmPlugin; } });
Object.defineProperty(exports, "handleWasmPluginCrash", { enumerable: true, get: function () { return loader_1.handleWasmPluginCrash; } });
Object.defineProperty(exports, "updateWasmPluginConfig", { enumerable: true, get: function () { return loader_1.updateWasmPluginConfig; } });
Object.defineProperty(exports, "setWasmPluginEnabled", { enumerable: true, get: function () { return loader_1.setWasmPluginEnabled; } });
Object.defineProperty(exports, "getAllWasmPlugins", { enumerable: true, get: function () { return loader_1.getAllWasmPlugins; } });
Object.defineProperty(exports, "getWasmPlugin", { enumerable: true, get: function () { return loader_1.getWasmPlugin; } });
Object.defineProperty(exports, "shutdownAllWasmPlugins", { enumerable: true, get: function () { return loader_1.shutdownAllWasmPlugins; } });
// ServerAPI Bridge
var wasm_serverapi_1 = require("./wasm-serverapi");
Object.defineProperty(exports, "createServerAPIBridge", { enumerable: true, get: function () { return wasm_serverapi_1.createServerAPIBridge; } });
Object.defineProperty(exports, "createWasmImports", { enumerable: true, get: function () { return wasm_serverapi_1.createWasmImports; } });
Object.defineProperty(exports, "callWasmExport", { enumerable: true, get: function () { return wasm_serverapi_1.callWasmExport; } });
// Subscriptions
var wasm_subscriptions_2 = require("./wasm-subscriptions");
Object.defineProperty(exports, "getSubscriptionManager", { enumerable: true, get: function () { return wasm_subscriptions_2.getSubscriptionManager; } });
Object.defineProperty(exports, "initializeSubscriptionManager", { enumerable: true, get: function () { return wasm_subscriptions_2.initializeSubscriptionManager; } });
//# sourceMappingURL=index.js.map