/** * Plugin settings UI components. * * Provides a hierarchical settings interface: * - Plugin list (shows all installed plugins) * - Plugin detail (enable/disable, features, config) * - Feature toggles * - Config value editor */ import { Container } from "@oh-my-pi/pi-tui"; import { PluginManager } from "../../extensibility/plugins/manager"; import type { InstalledPlugin } from "../../extensibility/plugins/types"; /** * Forwards a keystroke to `input`, but cancels via `onCancel` when the user presses Escape. */ export declare function handleInputOrEscape(data: string, input: { handleInput(data: string): void; }, onCancel: () => void): void; export interface PluginListCallbacks { onPluginSelect: (plugin: InstalledPlugin) => void; onCancel: () => void; } /** * Shows list of installed plugins with enable/disable status. * Selecting a plugin opens its detail view. */ export declare class PluginListComponent extends Container { #private; private readonly plugins; constructor(plugins: InstalledPlugin[], callbacks: PluginListCallbacks); handleInput(data: string): void; } export interface PluginDetailCallbacks { onEnabledChange: (enabled: boolean) => void; onFeatureChange: (feature: string, enabled: boolean) => void; onConfigChange: (key: string, value: unknown) => void; onBack: () => void; } /** * Shows detail settings for a single plugin: * - Enable/disable toggle * - Feature toggles * - Config settings */ export declare class PluginDetailComponent extends Container { #private; private plugin; private readonly manager; private readonly callbacks; constructor(plugin: InstalledPlugin, manager: PluginManager, callbacks: PluginDetailCallbacks); handleInput(data: string): void; } export interface PluginSettingsCallbacks { onClose: () => void; onPluginChanged: () => void; } /** * Top-level plugin settings component. * Manages navigation between plugin list and plugin detail views. */ export declare class PluginSettingsComponent extends Container { #private; private readonly callbacks; constructor(cwd: string, callbacks: PluginSettingsCallbacks); handleInput(data: string): void; }