/** * Prompt loader - loads prompt definitions from markdown files */ import type { PromptDefinition } from '../types/prompt.types.js'; export declare class PromptLoader { private static readonly CATEGORY_DIR_MAP; private cache; private pluginPromptsDirs; private promptsDir; constructor(promptsDir?: string); /** * Register an additional prompts root contributed by a plugin. * Plugin prompts must use existing categories; new categories are not supported. */ registerPluginPromptsDir(dir: string): void; /** * Load a specific prompt by ID (category.name format) */ loadPrompt(promptId: string): Promise; /** * Find prompt file by category and name. * Checks the primary prompts directory first, then plugin prompt directories. */ private findPromptFile; /** * Load all prompts in a category */ loadCategoryPrompts(category: string): Promise>; /** * List all available prompts */ listPrompts(): Promise; /** * Resolve {{include:path/to/file.md}} directives in prompt content. * * Each directive is replaced with the verbatim contents of the referenced * file under the prompts directory. Resolution is **single-pass**: if an * included file itself contains `{{include:...}}` directives, those are left * unexpanded. Missing files produce a warning and are replaced with an empty * string so the calling prompt still loads cleanly. All other read errors are * re-thrown as `ValidationError` to preserve full context up the call stack. */ private resolveIncludes; /** * Clear cache */ clearCache(): void; /** * Get cache size */ getCacheSize(): number; /** * Inject a pre-loaded prompt into the cache * Used by dry-run cache to speed up subsequent execution */ injectCachedPrompt(promptId: string, prompt: PromptDefinition): void; } //# sourceMappingURL=prompt-loader.d.ts.map