/**
 * Eta template engine. Uses `<% %>` delimiters to avoid Angular `{{ }}` conflicts.
 * Helpers are injected into template data under namespaced keys (filters, mappers,
 * predicates, fmt, gen, ...) rather than as global Eta helpers.
 */
/**
 * Bag of values passed to an Eta template as `it`. Templates access both
 * user-provided data (schema, moduleName, etc.) and injected helper
 * namespaces (`it.filters`, `it.mappers`, `it.fmt`, `it.gen`, `it.mock`,
 * `it.predicates`, `it.validators`, `it.pickModel`, `it.config`, `it.uuid`)
 * — see {@link render}.
 */
export interface TemplateData {
    [key: string]: unknown;
}
/**
 * Render an `.eta` template file found under the codegen templates directory
 * with injected utility namespaces. Returns the rendered source as a string.
 *
 * @param templatePath - Absolute or templates-dir-relative path to the `.eta`
 *   file. Absolute paths under the codegen templates dir are accepted and
 *   stripped to the relative form Eta expects.
 * @param data - Values passed to the template. They appear as `it.<key>`
 *   inside the template, together with the injected helper namespaces.
 * @throws {TypeError} If the template renders to a non-string value (e.g. an
 *   Eta compile error swallowed by an async helper).
 *
 * @example Inside a template:
 * ```eta
 * <%~ it.gen.importManager({ imports }) %>
 * <% it.filters.getEnumProperties(it.schema.aggregateProperties).forEach((p) => { -%>
 *   export const <%= it.fmt.pascal(p.name) %> = '<%= p.name %>';
 * <% }) -%>
 * ```
 */
export declare function render(templatePath: string, data: TemplateData): string;
/**
 * Render a raw template string (not a file) with the same helper namespaces
 * as {@link render}.
 *
 * Used for on-the-fly rendering of snippets stored outside the templates dir
 * (e.g. a fragment taken from a YAML schema or assembled in memory).
 *
 * @throws {TypeError} If the template renders to a non-string value.
 */
export declare function renderString(template: string, data: TemplateData): string;
/** Get the absolute path to the codegen templates directory. */
export declare function getTemplatesDir(): string;
/** Get the absolute path to the base templates directory (parent of codegen). */
export declare function getBaseTemplatesDir(): string;
