/// <reference types="node" />
import { AsyncHandler } from '../handlers/AsyncHandler';
import Dict = NodeJS.Dict;
export type Template = TemplateFileName | TemplateString | TemplatePath;
export type TemplateFileName = string;
export interface TemplateString {
    templateString: string;
}
export interface TemplatePath {
    templateFile: string;
    templatePath?: string;
}
/**
 * Utility interface for representing TemplateEngine input.
 */
export interface TemplateEngineInput<T> {
    contents: T;
    template?: Template;
}
/**
 * Generic interface for classes that implement a template engine.
 * A template engine renders content into a template.
 */
export declare abstract class TemplateEngine<T extends Dict<any> = Dict<any>> extends AsyncHandler<TemplateEngineInput<T>, string> {
}
