/**
 * Prompt Registry for AI Document Generation
 *
 * Centralized management of tailored system prompts for each document type.
 * Provides specialized prompts that generate content directly relevant to each section.
 *
 * @version 1.0.0
 * @author Requirements Gathering Agent Team
 * @created 2024
 *
 * Key Features:
 * - Document-type-specific system prompts
 * - Role-based prompt engineering
 * - Context-aware prompt selection
 * - Maintainable prompt templates
 *
 * @filepath src/modules/ai/prompts/PromptRegistry.ts
 */
export interface PromptTemplate {
    /** Unique identifier for the prompt */
    id: string;
    /** Document type this prompt is designed for */
    documentType: string;
    /** Category of the document (BABOK, DMBOK, PMBOK, etc.) */
    category: string;
    /** AI role and expertise definition */
    systemPrompt: string;
    /** Template for user prompt with placeholders */
    userPromptTemplate: string;
    /** Specific instructions for content structure */
    structureInstructions: string;
    /** Quality criteria and standards to follow */
    qualityCriteria: string;
    /** Maximum recommended tokens for response */
    maxTokens: number;
    /** Priority level for prompt selection */
    priority: number;
    /** Tags for prompt categorization */
    tags: string[];
    /** Version of the prompt */
    version: string;
    /** Last updated timestamp */
    lastUpdated: Date;
}
export interface PromptContext {
    /** Project context information */
    projectContext: string;
    /** Document-specific context */
    documentContext?: string;
    /** Related documents context */
    relatedDocuments?: string[];
    /** Stakeholder information */
    stakeholders?: string;
    /** Business domain context */
    businessDomain?: string;
    /** Technical context */
    technicalContext?: string;
}
/**
 * Central registry for all AI prompts used in document generation
 */
export declare class PromptRegistry {
    private static instance;
    private prompts;
    private categoryPrompts;
    private constructor();
    static getInstance(): PromptRegistry;
    /**
     * Initialize all prompt templates
     */
    private initializePrompts;
    /**
     * Register a prompt template
     */
    registerPrompt(prompt: PromptTemplate): void;
    /**
     * Get prompt by ID
     */
    getPrompt(id: string): PromptTemplate | undefined;
    /**
     * Get prompt by document type
     */
    getPromptByDocumentType(documentType: string): PromptTemplate | undefined;
    /**
     * Get prompts by category
     */
    getPromptsByCategory(category: string): PromptTemplate[];
    /**
     * Get all available categories
     */
    getCategories(): string[];
    /**
     * Search prompts by tags
     */
    searchPromptsByTags(tags: string[]): PromptTemplate[];
    /**
     * Build complete prompt from template and context
     */
    buildPrompt(promptId: string, context: PromptContext): {
        systemPrompt: string;
        userPrompt: string;
    } | null;
    /**
     * Register BABOK-specific prompts
     */
    private registerBABOKPrompts;
    /**
     * Register DMBOK-specific prompts
     */
    private registerDMBOKPrompts;
    /**
     * Register PMBOK-specific prompts
     */
    private registerPMBOKPrompts;
    /**
     * Register Requirements-specific prompts
     */
    private registerRequirementsPrompts;
    /**
     * Register Technical Analysis prompts
     */
    private registerTechnicalAnalysisPrompts;
    /**
     * Register Quality Assurance prompts
     */
    private registerQualityAssurancePrompts;
    /**
     * Register Strategic Planning prompts
     */
    private registerStrategicPlanningPrompts;
    /**
     * Register Implementation prompts
     */
    private registerImplementationPrompts;
}
//# sourceMappingURL=PromptRegistry.d.ts.map