export interface TemplateVariables { [key: string]: string | number | boolean; } export interface TemplateOptions { skipIfExists?: boolean; createDirectories?: boolean; exclude?: string[]; include?: string[]; } export declare class TemplateEngine { private variables; /** * Set template variables for substitution */ setVariables(variables: TemplateVariables): void; /** * Get current template variables */ getVariables(): TemplateVariables; /** * Process a template directory and copy it to destination */ processTemplate(templatePath: string, destinationPath: string, options?: TemplateOptions): Promise; /** * Process a single template file */ processFile(templateFilePath: string, destinationFilePath: string, options?: { skipIfExists?: boolean; baseDir?: string; }): Promise; /** * Substitute template variables in content */ private substituteVariables; /** * Substitute variables in file/directory names */ private substituteVariablesInPath; /** * Derive destination filename from template name */ private deriveDestinationFilename; /** * Copy directory recursively with template processing */ private copyDirectory; private shouldProcessEntry; private processDirectory; private processFileEntry; /** * Ensure a directory exists, creating it if necessary */ private ensureDirectory; /** * Safely ensure a directory exists with security validation */ private ensureDirectorySafe; /** * Check if a file should be excluded */ private shouldExclude; /** * Check if a file should be included */ private shouldInclude; /** * Check if a file is a text file that should have variable substitution */ private isTextFile; /** * Check if a file path represents important generated content */ private isImportantContent; /** * Get relative path from a full file path for display */ private getRelativePath; }