/**
 * MCP Prompts Handler - Manages shared prompt library
 */
import { Logger } from '../core/error-handling';
export interface PromptArgument {
    name: string;
    description?: string;
    required?: boolean;
}
export interface PromptMetadata {
    name: string;
    description: string;
    category?: string;
    arguments?: PromptArgument[];
}
export interface PromptFile {
    path: string;
    content: string;
}
export interface Prompt {
    name: string;
    description: string;
    content: string;
    arguments?: PromptArgument[];
    source: 'built-in' | 'user';
    files?: PromptFile[];
}
/**
 * Loads and parses a prompt file with YAML frontmatter
 */
export declare function loadPromptFile(filePath: string, source?: 'built-in' | 'user', defaultName?: string): Prompt;
/**
 * Loads built-in prompts from the shared-prompts directory
 */
export declare function loadBuiltInPrompts(logger: Logger, baseDir?: string): Prompt[];
/**
 * Merge built-in and user prompts with collision detection
 * Built-in prompts take precedence over user prompts with the same name
 */
export declare function mergePrompts(builtInPrompts: Prompt[], userPrompts: Prompt[], logger: Logger): Prompt[];
/**
 * Loads all prompts (built-in + user) with collision detection
 * This is the main entry point for loading prompts
 */
export declare function loadAllPrompts(logger: Logger, baseDir?: string, forceRefresh?: boolean): Promise<Prompt[]>;
export interface PromptsListArgs {
    baseDir?: string;
    excludeFileSkills?: boolean;
}
interface PromptsListResponse {
    prompts: Array<{
        name: string;
        description: string;
        arguments?: PromptArgument[];
    }>;
}
/**
 * Handle prompts/list MCP request
 */
export declare function handlePromptsListRequest(args: PromptsListArgs | undefined, logger: Logger, requestId: string): Promise<PromptsListResponse>;
interface PromptsGetArgs {
    name: string;
    arguments?: Record<string, string>;
    baseDir?: string;
}
interface PromptsGetResponse {
    description?: string;
    messages: Array<{
        role: string;
        content: {
            type: string;
            text: string;
        };
    }>;
    files?: PromptFile[];
}
/**
 * Handle prompts/get MCP request
 */
export declare function handlePromptsGetRequest(args: PromptsGetArgs, logger: Logger, requestId: string): Promise<PromptsGetResponse>;
export {};
//# sourceMappingURL=prompts.d.ts.map