/**
 * CLI Plugin Registry
 *
 * Handles registration of plugin commands and aliases with conflict detection.
 * Built-in commands always take precedence over plugin commands.
 */
import type { CLIPlugin, PluginRegistrationResult } from './plugin-types.js';
/**
 * Options for command registration
 */
export interface RegisterPluginOptions {
    /** Enable verbose logging */
    verbose?: boolean;
}
/**
 * Registers all commands and aliases from a single plugin.
 *
 * Built-in commands always take precedence - plugin commands that conflict
 * with existing commands are skipped with a warning.
 *
 * @param plugin - The plugin to register
 * @param options - Registration options
 * @returns Registration result
 */
export declare function registerPluginCommands(plugin: CLIPlugin, options?: RegisterPluginOptions): PluginRegistrationResult;
/**
 * Registers all plugins' commands and aliases.
 *
 * Plugins are registered in order, so earlier plugins take precedence
 * for command names. Built-in commands always take precedence over all plugins.
 *
 * @param plugins - Plugins to register
 * @param options - Registration options
 * @returns Array of registration results
 */
export declare function registerAllPlugins(plugins: CLIPlugin[], options?: RegisterPluginOptions): Promise<PluginRegistrationResult[]>;
/**
 * Logs conflict warnings from registration results.
 *
 * @param results - Registration results to check for conflicts
 */
export declare function logConflictWarnings(results: PluginRegistrationResult[]): void;
/**
 * Gets a summary of registered plugin commands for the help menu.
 *
 * @param results - Registration results
 * @returns Map of plugin name to registered command names
 */
export declare function getPluginCommandSummary(results: PluginRegistrationResult[]): Map<string, string[]>;
//# sourceMappingURL=plugin-registry.d.ts.map