/** * usePluginEditor Hook * * Manages state for editing a plugin's source configuration. * Loads plugin config, registry entry, and handles save/reset. * * @since v2.2.0 */ import type { RegistryPlugin, RegistryPluginSource } from '../../core/registry/registry-types.js'; import type { Plugin, PluginSourceType } from '../../core/types/plugin.js'; export interface PluginEditorState { /** Plugin being edited */ plugin: Plugin | null; /** Current edited type */ editType: PluginSourceType; /** Current edited identifier (resourceId, projectSlug, repoSlug, etc.) */ editIdentifier: string; /** Whether the plugin is enabled */ editEnabled: boolean; /** Registry entry for this plugin (if available) */ registryPlugin: RegistryPlugin | null; /** Available sources from registry */ registrySources: RegistryPluginSource[]; /** Currently selected field index for navigation */ selectedField: number; /** Whether changes have been made */ isDirty: boolean; /** Whether changes can be saved (dirty + valid identifier) */ canSave: boolean; /** Set source type */ setType: (type: PluginSourceType) => void; /** Set identifier value */ setIdentifier: (value: string) => void; /** Set enabled state */ setEnabled: (enabled: boolean) => void; /** Select a registry source (quick-pick) */ selectRegistrySource: (index: number) => void; /** Reset to registry preferred source */ resetToRegistry: () => void; /** Navigate selected field */ setSelectedField: (index: number) => void; /** Build a Plugin object from current edit state */ buildPlugin: () => Plugin; /** Total number of navigable fields */ fieldCount: number; } /** Source types available for selection */ export declare const SOURCE_TYPES: PluginSourceType[]; /** Get the identifier field name for a source type */ export declare function getIdentifierFieldName(type: PluginSourceType): string; export declare function usePluginEditor(pluginToEdit: Plugin | null): PluginEditorState; //# sourceMappingURL=usePluginEditor.d.ts.map