export interface TemplateVars { [key: string]: string | number | boolean | undefined; } /** * Render a Mustache-style template by substituting {{var}} occurrences. * * Contract: * - {{var}} is replaced with vars[var] if defined, else left in place * (so partial renders are detectable downstream by the lint step) * - {{var.path}} dotted keys are NOT supported in iter 3 — flat keys only * - Escaping: no built-in HTML escape. Templates that need JSON-safe * output should pre-escape their vars; this is template-engine-agnostic. * - Whitespace inside {{ }} is tolerated: {{ name }} renders the same * as {{name}}. * * Returns the rendered string and a list of any unresolved variable names * (so the CLI can warn about missing vars). */ export declare function render(template: string, vars: TemplateVars): { output: string; unresolved: string[]; }; /** * Extract every {{var}} reference from a template so we can verify the * template's declared vars (in its manifest.json) match the ones it * actually uses. Run this as a pre-commit lint on the template directory. */ export declare function extractVarReferences(template: string): string[]; /** * Validate that a harness name is npm-publishable. Mirrors npm's own * package-name validation (https://docs.npmjs.com/cli/v10/configuring-npm/package-json#name) * with the additional kebab-case + leading-letter rule generated harnesses * inherit. */ export declare function validateHarnessName(name: string): { valid: boolean; reason?: string; }; //# sourceMappingURL=renderer.d.ts.map