/**
 * Command Registry Tool
 *
 * Features:
 * 1. Scan and parse YAML headers from command files
 * 2. Read from global ~/.claude/commands/workflow directory
 * 3. Support on-demand extraction (not full scan)
 * 4. Cache parsed metadata for performance
 */
export interface CommandMetadata {
    name: string;
    command: string;
    description: string;
    argumentHint: string;
    allowedTools: string[];
    filePath: string;
    group?: string;
}
export interface CommandSummary {
    name: string;
    description: string;
}
export declare class CommandRegistry {
    private commandDir;
    private cache;
    constructor(commandDir?: string);
    /**
     * Auto-detect ~/.claude/commands/workflow directory
     */
    private findCommandDir;
    /**
     * Parse YAML header (simplified version)
     *
     * Limitations:
     * - Only supports simple key: value pairs (single-line values)
     * - No support for multi-line values, nested objects, complex lists
     * - allowed-tools field converts comma-separated strings to arrays
     */
    private parseYamlHeader;
    /**
     * Get single command metadata
     * @param commandName Command name (e.g., "lite-plan" or "/workflow:lite-plan")
     * @returns Command metadata or null
     */
    getCommand(commandName: string): CommandMetadata | null;
    /**
     * Get multiple commands metadata
     * @param commandNames Array of command names
     * @returns Map of command metadata
     */
    getCommands(commandNames: string[]): Map<string, CommandMetadata>;
    /**
     * Get all commands' names and descriptions
     * @returns Map of command names to summaries
     */
    getAllCommandsSummary(): Map<string, CommandSummary>;
    /**
     * Get all commands organized by category/tags
     */
    getAllCommandsByCategory(): Record<string, CommandMetadata[]>;
    /**
     * Convert to JSON for serialization
     */
    toJSON(): Record<string, any>;
    /**
     * Clear the command cache
     * Use this to invalidate cached commands after enable/disable operations
     * @returns void
     */
    clearCache(): void;
}
/**
 * Export function for direct usage
 */
export declare function createCommandRegistry(commandDir?: string): CommandRegistry;
/**
 * Export function to get all commands
 */
export declare function getAllCommandsSync(): Map<string, CommandSummary>;
/**
 * Export function to get specific command
 */
export declare function getCommandSync(name: string): CommandMetadata | null;
//# sourceMappingURL=command-registry.d.ts.map