/** * Plugin Registry — discovers, loads, and manages plugins. * * Core stays plugin-agnostic: it knows about the *interface*, not specific plugins. * Plugins are discovered from (highest priority first): * 1. Local dev: $FRANKLIN_PLUGINS_DIR/* (or legacy $RUNCODE_PLUGINS_DIR/*) * 2. User: ~/.blockrun/plugins/* * 3. Bundled: /dist/plugins-bundled/* (reserved for plugins * shipped inside the npm tarball — none today; social/trading/content * are native subsystems, not plugins) */ import type { Plugin, PluginManifest } from '../plugin-sdk/plugin.js'; export declare function getBundledPluginsDir(): string; export declare function getUserPluginsDir(): string; interface LoadedPlugin { manifest: PluginManifest; pluginDir: string; plugin: Plugin; } /** Find all plugin manifests across discovery paths */ export declare function discoverPluginManifests(): Array<{ manifest: PluginManifest; dir: string; }>; /** Load a single plugin from its directory */ export declare function loadPlugin(manifest: PluginManifest, pluginDir: string): Promise; /** Discover and load all plugins. Returns the loaded registry. */ export declare function loadAllPlugins(): Promise>; export declare function getPlugin(id: string): LoadedPlugin | undefined; export declare function listPlugins(): LoadedPlugin[]; /** Get all plugins that provide workflows */ export declare function listWorkflowPlugins(): LoadedPlugin[]; /** Get all plugins that provide channels */ export declare function listChannelPlugins(): LoadedPlugin[]; export {};