import { AdvancedPromptTemplate } from './advanced-prompt-template';
/**
 * Template Inheritance System
 * Enables hierarchical template structures with base templates and child templates
 */
export declare class TemplateInheritanceManager {
    private baseTemplates;
    private templateHierarchy;
    /**
     * Register a base template
     */
    registerBaseTemplate(name: string, template: BaseTemplate): void;
    /**
     * Create a child template that inherits from a base template
     */
    createChildTemplate(baseName: string, childOptions: ChildTemplateOptions): AdvancedPromptTemplate;
    /**
     * Build an inherited template by combining base and child specifications
     */
    private buildInheritedTemplate;
    /**
     * Get the inheritance hierarchy for a base template
     */
    getHierarchy(baseName: string): TemplateHierarchy;
    /**
     * Validate template inheritance structure
     */
    validateInheritance(baseName: string): ValidationResult;
    /**
     * Get all base template names
     */
    getBaseTemplateNames(): string[];
    /**
     * Export template hierarchy as JSON
     */
    exportHierarchy(): Record<string, any>;
}
export interface BaseTemplate {
    name: string;
    template: string;
    description?: string;
    defaultVariables?: Record<string, any>;
    customFunctions?: Record<string, (value: any, ...args: any[]) => any>;
    requiredBlocks?: string[];
    optionalBlocks?: string[];
    escapeHtml?: boolean;
    preserveWhitespace?: boolean;
    metadata?: Record<string, any>;
}
export interface ChildTemplateOptions {
    name: string;
    blocks?: Record<string, BlockDefinition>;
    sections?: Record<string, SectionDefinition>;
    variables?: Record<string, any>;
    customFunctions?: Record<string, (value: any, ...args: any[]) => any>;
    escapeHtml?: boolean;
    preserveWhitespace?: boolean;
}
export interface BlockDefinition {
    content: string;
    mode?: 'replace' | 'extend';
    priority?: number;
}
export interface SectionDefinition {
    content: string;
    mode: 'replace' | 'prepend' | 'append';
}
export interface TemplateHierarchy {
    baseName: string;
    baseTemplate: BaseTemplate | null;
    children: {
        name: string;
        blocks: string[];
        sections: string[];
    }[];
}
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * Helper function to create common base templates
 */
export declare function createCommonBaseTemplates(): BaseTemplate[];
/**
 * Helper function to create a template inheritance manager with common base templates
 */
export declare function createInheritanceManager(): TemplateInheritanceManager;
//# sourceMappingURL=template-inheritance.d.ts.map