/**
 * Prompt registry for MCP server
 * Manages prompts that appear as custom slash commands in Claude Code
 * Following the pattern: /mcp__<server-name>__<prompt-name>
 */
import { MCPPrompt } from "../utils/types.js";
import { ILogger } from "../core/logger.js";
export interface PromptHandler {
    (args: Record<string, unknown>): Promise<string>;
}
export interface RegisteredPrompt extends MCPPrompt {
    handler: PromptHandler;
}
/**
 * Registry for managing MCP prompts that become slash commands
 */
export declare class PromptRegistry {
    private logger;
    private prompts;
    private readonly serverName;
    constructor(logger: ILogger);
    /**
     * Register a prompt that will become a slash command
     */
    registerPrompt(prompt: RegisteredPrompt): void;
    /**
     * Get a prompt by name
     */
    getPrompt(name: string): RegisteredPrompt | undefined;
    /**
     * List all registered prompts (for MCP prompts/list)
     */
    listPrompts(): MCPPrompt[];
    /**
     * Execute a prompt with given arguments
     */
    executePrompt(name: string, args: Record<string, unknown>): Promise<string>;
    /**
     * Load prompts from .claude directory structure
     * Creates MCP prompts that become slash commands like /mcp__claude-flow__<command>
     * Only loads from the current working directory (user's project), not package directory
     */
    loadClaudePrompts(): Promise<void>;
    /**
     * Load prompts from a specific directory
     */
    private loadPromptsFromDirectory;
    /**
     * Create a prompt name from file and category
     */
    private createPromptName;
    /**
     * Load a single prompt from a markdown file
     */
    private loadPromptFromFile;
    /**
     * Parse frontmatter from markdown content
     */
    private parseFrontmatter;
    /**
     * Create arguments schema for the prompt
     */
    private createArgumentsSchema;
    /**
     * Execute a Claude command - returns instructions for Claude to follow
     */
    private executeClaudeCommand;
}
//# sourceMappingURL=prompts.d.ts.map