import type { DoctorCheck, DoctorOptions, InstalledPlugin, InstallOptions, PluginSettingSchema } from "./types"; export declare class PluginManager { #private; constructor(cwd?: string); /** * Install a plugin from npm with optional feature selection. * * @param specString - Package specifier with optional features: "pkg", "pkg[feat]", "pkg[*]", "pkg[]" * @param options - Install options * @returns Installed plugin metadata */ install(specString: string, options?: InstallOptions): Promise; /** * Uninstall a plugin. */ uninstall(name: string): Promise; /** * List all installed plugins. */ list(): Promise; /** * Link a local plugin for development. */ link(localPath: string): Promise; /** * Enable or disable a plugin globally. */ setEnabled(name: string, enabled: boolean): Promise; /** * Get enabled features for a plugin. */ getEnabledFeatures(name: string): Promise; /** * Set enabled features for a plugin. */ setEnabledFeatures(name: string, features: string[] | null): Promise; /** * Get all settings for a plugin. */ getPluginSettings(name: string): Promise>; /** * Set a plugin setting value. */ setPluginSetting(name: string, key: string, value: unknown): Promise; /** * Delete a plugin setting. */ deletePluginSetting(name: string, key: string): Promise; /** * Run health checks on the plugin system. */ doctor(options?: DoctorOptions): Promise; } export interface ValidationResult { valid: boolean; error?: string; } /** * Validate a setting value against its schema. */ export declare function validateSetting(value: unknown, schema: PluginSettingSchema): ValidationResult; /** * Parse a string value according to a setting schema's type. */ export declare function parseSettingValue(valueStr: string, schema: PluginSettingSchema): unknown;