import type { WeavetabPlugin, WeavetabManifest, WeavetabPermissions, PluginContext } from "./interface.js"; import { PluginStorageManager } from "./storage.js"; import { PluginExtensionBridge } from "./extension_bridge.js"; export interface InstalledPluginInfo { packageName: string; dir: string; manifest: WeavetabManifest; pkgJson?: Record; hasValidManifest: boolean; } /** * Normalizes permissions format across legacy arrays and object aliases (filesystem vs fs). */ export declare function normalizePermissions(perms?: any): WeavetabPermissions; /** * Reads the manifest (weavetab.json) and package.json for an installed package * without executing its runtime code (safe for listing/inspection). */ export declare function inspectInstalledPackage(pkgDir: string): InstalledPluginInfo | null; /** * Scan node_modules and return metadata for all installed Weavetab plugins. */ export declare function listInstalledPlugins(pluginDir?: string): InstalledPluginInfo[]; export declare function buildPluginContext(plugin: WeavetabPlugin, storageManager: PluginStorageManager, extensionBridge: PluginExtensionBridge, pluginConfig: Record, hooks: { beforeToolCall: Array<(toolName: string, args: Record, session?: any) => Promise | void>; afterToolCall: Array<(toolName: string, args: Record, result: any, session?: any) => Promise | void>; onPageNavigate: Array<(url: string, session?: any) => Promise | void>; }): PluginContext; export declare function discoverPlugins(pluginDir?: string): WeavetabPlugin[]; /** * Loads a specific plugin by name from node_modules. */ export declare function loadPluginByName(name: string, pluginDir?: string): WeavetabPlugin | null;