import { Command } from 'commander'; import { MergeConfiguration } from '../types.js'; /** * Interface for self-registering CLI commands */ export interface ICommand { /** * Add this command and its subcommands to the program * @param program - The main commander program * @param mergeConfiguration - Function to merge CLI options with configuration */ addToProgram(program: Command, mergeConfiguration: MergeConfiguration): void; } /** * Registry for managing CLI commands */ export declare class CommandRegistry { private commands; /** * Register a command with the registry */ register(command: ICommand): void; /** * Register all commands with the program */ registerAll(program: Command, mergeConfiguration: MergeConfiguration): void; /** * Get all registered commands */ getCommands(): ICommand[]; /** * Clear all registered commands (useful for testing) */ clear(): void; } //# sourceMappingURL=command-registry.d.ts.map