import { DocumentGenerationParams, DocumentType } from '../types/documentation-types.js';
/**
 * Interface for a prompt template
 */
export interface PromptTemplate {
    /**
     * The system prompt to use for the AI model
     */
    systemPrompt: string;
    /**
     * Generates a prompt for the AI based on document generation parameters
     * @param params Document generation parameters
     * @returns The generated prompt
     */
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Common base class for all prompt templates
 */
export declare abstract class BasePromptTemplate implements PromptTemplate {
    /**
     * The system prompt to use for the AI model
     */
    readonly systemPrompt: string;
    /**
     * Abstract method to generate a specific prompt based on parameters
     * @param params Document generation parameters
     */
    abstract generatePrompt(params: DocumentGenerationParams): string;
    /**
     * Creates a base info section from the parameters
     * @param params Document generation parameters
     * @returns A string with the base information
     */
    protected getBaseInfo(params: DocumentGenerationParams): string;
}
/**
 * Technical specification prompt template
 */
export declare class TechnicalPromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Database specification prompt template
 */
export declare class DatabasePromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * UI/UX specification prompt template
 */
export declare class UIUXPromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Audience definition prompt template
 */
export declare class AudiencePromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Accessibility specification prompt template
 */
export declare class AccessibilityPromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * API documentation prompt template
 */
export declare class APIPromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Generic documentation prompt template
 */
export declare class GenericPromptTemplate extends BasePromptTemplate {
    generatePrompt(params: DocumentGenerationParams): string;
}
/**
 * Factory class for creating prompt templates
 */
export declare class PromptTemplateFactory {
    /**
     * Get the appropriate prompt template for a document type
     * @param documentType Type of document to generate
     * @returns A prompt template instance
     */
    static getTemplateForType(documentType: DocumentType): PromptTemplate;
}
