import { Logger } from 'winston';
import { TemplateGenerator } from "./TemplateGenerator";
import { TemplateContext, TemplateProvider } from "./provider/TemplateProvider";
declare const _logger: unique symbol;
declare const _partials: unique symbol;
declare const _provider: unique symbol;
/**
 * A {@link TemplateGenerator} implementation that uses Mustache to render templates.
 */
export declare class MustacheTemplateGenerator<C extends TemplateContext> implements TemplateGenerator<C> {
    private readonly [_logger];
    private [_partials];
    private readonly [_provider];
    /**
     * Creates an instance of {@link MustacheTemplateGenerator} using the `options` provided.
     *
     * @param options - The options to be used.
     */
    constructor(options: MustacheTemplateGeneratorOptions<C>);
    generate(context: C, directory: string): Promise<void>;
    private static formatOutput;
    private generateDirectory;
    private generateEntry;
    private getPartials;
    private getTemplatePath;
    private static getTargetPath;
    private static getTargetPathExcludingExtension;
    private static verifyDirectoryEmptyOrNotExists;
}
/**
 * The options used by {@link MustacheTemplateGenerator}.
 */
export declare type MustacheTemplateGeneratorOptions<C extends TemplateContext> = {
    /**
     * The parent logger to be used to create any children loggers.
     */
    readonly parentLogger: Logger;
    /**
     * The template provider to be used.
     */
    readonly provider: TemplateProvider<C>;
};
export {};
