interface PluginInfo { name: string; description: string; version: string; tags: string[]; official?: boolean; docs?: string; install?: string; integrity?: string; } interface RegistryData { version: string; official: PluginInfo[]; community: PluginInfo[]; } interface InstallResult { plugin: string; installed: boolean; command: string; exitCode: number; } type PluginRegistryErrorCode = "INVALID_PLUGIN_NAME" | "PLUGIN_NOT_FOUND" | "EXTERNAL_CONFIRMATION_REQUIRED" | "INSTALL_COMMAND_FAILED" | "INSTALL_FAILED" | "NETWORK_ERROR" | "REGISTRY_LOAD_FAILED"; interface PluginRegistryErrorPayload { code: PluginRegistryErrorCode; message: string; context?: Record; } declare class PluginRegistryError extends Error { readonly code: PluginRegistryErrorCode; readonly context?: Record; constructor(payload: PluginRegistryErrorPayload); toObject(): PluginRegistryErrorPayload; } interface InstallOptions { dryRun?: boolean; npmBin?: string; allowExternal?: boolean; confirmExternal?: boolean; } interface RegistryOptions { registryUrl?: string; } declare class PluginRegistry { private readonly plugins; private readonly registryVersion; constructor(registryData?: RegistryData, options?: RegistryOptions); static loadFromUrl(url: string): Promise; getVersion(): string; search(query: string): PluginInfo[]; getAll(): PluginInfo[]; getByName(pluginName: string): PluginInfo | undefined; install(pluginName: string, options?: InstallOptions): InstallResult; uninstall(pluginName: string, options?: { dryRun?: boolean; npmBin?: string; }): { plugin: string; uninstalled: boolean; command: string; exitCode: number; }; verifyIntegrity(pluginName: string): { ok: boolean; reason?: string; }; checkForUpdate(pluginName: string): { hasUpdate: boolean; current?: string; latest?: string; error?: string; }; checkAllUpdates(): Array<{ name: string; hasUpdate: boolean; current?: string; latest?: string; error?: string; }>; } declare function getRegistry(): PluginRegistry; declare const registry: PluginRegistry; export { type InstallOptions, type InstallResult, type PluginInfo, PluginRegistry, PluginRegistryError, type PluginRegistryErrorCode, type PluginRegistryErrorPayload, type RegistryOptions, getRegistry, registry };