/**
 * Template Engine
 * Handles template rendering with variable substitution
 * Sealed namespace with immutable template rendering methods
 */
export interface TemplateVariables {
    [key: string]: string | number | boolean | undefined;
}
export interface Template {
    name: string;
    description: string;
    files: TemplateFile[];
    directories: string[];
}
/**
 * A file that will be copied from a template source into the generated project.
 * `path`   -> destination path in the generated project
 * `source` -> template file path (relative to the template root directory)
 */
export interface TemplateFile {
    path: string;
    source: string;
    isTemplate?: boolean;
}
/**
 * TemplateEngine namespace - sealed for immutability
 */
export declare const TemplateEngine: Readonly<{
    render: (content: string, variables: TemplateVariables) => string;
    renderContent: (content: string, variables: TemplateVariables) => string;
    renderPath: (content: string, variables: TemplateVariables) => string;
    mergeVariables: (custom: TemplateVariables, defaults: TemplateVariables) => TemplateVariables;
    hasVariables: (content: string) => boolean;
    extractVariables: (content: string) => string[];
}>;
/**
 * Built-in template definitions (file-based; no inline contents)
 *
 * `source` paths are relative to your template root directory (wherever the CLI loader reads from).
 */
export declare const BUILT_IN_TEMPLATES: Record<string, Template>;
//# sourceMappingURL=TemplateEngine.d.ts.map