import { Repository } from 'typeorm';
import { NestDynamicTemplate } from '../entities/template.entity';
import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
import { RenderTemplateDto, RenderTemplateOutputDTO } from '../dto/render-template.dto';
import { CreateTemplateDto } from '../dto/create-template.dto';
import { TemplateFilterDto } from '../dto/template-filter.dto';
import { TemplateLayoutService } from './template-layout.service';
import { TemplateEngineRegistryService } from './template-engine.registry';
import { RenderContentTemplateDto } from '../dto/render-content-template.dto';
export declare class TemplateService {
    private readonly templateRepository;
    private readonly engineRegistry;
    private readonly templateLayoutService;
    constructor(templateRepository: Repository<NestDynamicTemplate>, engineRegistry: TemplateEngineRegistryService, templateLayoutService: TemplateLayoutService);
    render(renderDto: RenderTemplateDto): Promise<RenderTemplateOutputDTO>;
    renderContent(input: RenderContentTemplateDto): Promise<string>;
    renderLanguage(language: TemplateLanguageEnum, content: string, context: Record<string, any>): Promise<string>;
    renderEngine(engine: TemplateEngineEnum, content: string, context: Record<string, any>): Promise<string>;
    getTemplates(filter?: TemplateFilterDto): Promise<NestDynamicTemplate[]>;
    getTemplateById(id: string): Promise<NestDynamicTemplate | null>;
    findTemplate(name: string, scope?: string, scopeId?: string, locale?: string): Promise<NestDynamicTemplate | null>;
    createTemplate(data: CreateTemplateDto): Promise<NestDynamicTemplate>;
    overwriteSystemTemplate(templateId: string, updates: Partial<CreateTemplateDto>): Promise<NestDynamicTemplate>;
    updateTemplate(id: string, updates: Partial<CreateTemplateDto>, canUpdateSystemTemplate?: boolean): Promise<NestDynamicTemplate>;
    deleteTemplate(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
}
