/**
 * TemplateRenderer — minimalist {{VAR}} substitution.
 *
 * Story 5.1 — OpenLife v1.2 Royal Stack.
 *
 * Zero external dependencies. Replaces `{{VAR}}` tokens with literal
 * string values from a flat object. Unknown variables are left in place
 * (so missing vars are visible in output rather than silently empty).
 *
 * NOT a templating engine — no conditionals, loops, or HTML escaping.
 * If those become needed in v1.3, swap to Handlebars at this same
 * surface.
 *
 * Use case: SquadCreator / SkillCreator render `dist-templates/{squad,
 * skill}-template/` markdown files with operator-supplied values.
 */
export type TemplateVars = Record<string, string>;
/**
 * Render a template string by substituting `{{VAR}}` tokens. Unknown
 * tokens are returned verbatim (intentional — surfaces missing vars).
 */
export declare function renderTemplate(template: string, vars: TemplateVars): string;
/**
 * Render a template file from disk. Throws if the source file does not
 * exist (caller is expected to verify dist-templates layout up-front).
 */
export declare function renderTemplateFile(filePath: string, vars: TemplateVars): string;
/**
 * Inspect a template for required variables — returns the sorted list of
 * unique `{{VAR}}` tokens. Useful for tooling that wants to surface
 * "missing required variables" before render.
 */
export declare function listTemplateVars(template: string): string[];
