import { Repository } from 'typeorm';
import { NestDynamicTemplateLayout } from '../entities/template-layout.entity';
import { TemplateLayoutFilterDto } from '../dto/template-layout-filter.dto';
import { TemplateEngineRegistryService } from './template-engine.registry';
import { RenderTemplateLayoutDto, RenderTemplateLayoutOutput } from '../dto/render-template-layout.dto';
import { CreateTemplateLayoutDto } from '../dto/create-template-layout.dto';
import { RenderContentTemplateLayoutDto } from '../dto/render-content-template-layout.dto';
export declare class TemplateLayoutService {
    private readonly layoutRepository;
    private readonly engineRegistry;
    constructor(layoutRepository: Repository<NestDynamicTemplateLayout>, engineRegistry: TemplateEngineRegistryService);
    render(renderDto: RenderTemplateLayoutDto): Promise<RenderTemplateLayoutOutput>;
    renderContent(input: RenderContentTemplateLayoutDto): Promise<string>;
    private asRenderError;
    getTemplateLayouts(filter?: TemplateLayoutFilterDto): Promise<NestDynamicTemplateLayout[]>;
    getTemplateLayoutById(id: string): Promise<NestDynamicTemplateLayout | null>;
    findTemplateLayout(name: string, scope?: string, scopeId?: string, locale?: string): Promise<NestDynamicTemplateLayout | null>;
    createTemplateLayout(data: CreateTemplateLayoutDto): Promise<NestDynamicTemplateLayout>;
    overwriteSystemTemplateLayout(templateId: string, updates: Partial<CreateTemplateLayoutDto>): Promise<NestDynamicTemplateLayout>;
    updateTemplateLayout(id: string, updates: Partial<CreateTemplateLayoutDto>, canUpdateSystemTemplate?: boolean): Promise<NestDynamicTemplateLayout>;
    deleteTemplateLayout(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
}
