import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
import { NestDynamicTemplatesModuleConfig } from '../interfaces/module-config.interface';
import { TemplateEngine } from '../engines/template-engine';
import { LanguageEngine } from '../engines/language-engine';
type ClassType<T> = new (...args: any[]) => T;
export declare class TemplateEngineRegistryService {
    private config;
    private templateEngines;
    private languageEngines;
    constructor(config: NestDynamicTemplatesModuleConfig);
    registerTemplateEngines(engineClasses: ClassType<TemplateEngine>[]): void;
    registerTemplateEngine(format: TemplateEngineEnum, engine: TemplateEngine): void;
    registerLanguageEngine(format: TemplateLanguageEnum, engine: LanguageEngine): void;
    getTemplateEngine(format: TemplateEngineEnum): TemplateEngine;
    getLanguageEngine(format: TemplateLanguageEnum): LanguageEngine;
    registerLanguageEngines(engineClasses: ClassType<LanguageEngine>[]): void;
    hasTemplateEngine(format: TemplateEngineEnum): boolean;
    hasLanguageEngine(format: TemplateLanguageEnum): boolean;
    getSupportedTemplateFormats(): TemplateEngineEnum[];
    getSupportedLanguageFormats(): TemplateLanguageEnum[];
}
export {};
