import { Response } from 'express';
import { ProgramTemplateService } from './program-template.service';
import { CreateProgramTemplateDto } from './dto/create-program-template.dto';
import { UpdateProgramTemplateDto } from './dto/update-program-template.dto';
import { UpdateTemplateFormDto } from './dto/update-template-form.dto';
import { FilterProgramTemplateDto } from './dto/filter-program-template.dto';
import { TemplateFormSectionService } from 'src/template-form-section/template-form-section.service';
import { CloneFromMasterDto } from 'src/template-form-section/dto/clone-from-master.dto';
import { TemplateFormBuilderDto } from 'src/template-form-section/dto/template-form-builder.dto';
import { ResponseService } from 'src/common/response-handling/response-handler';
import ErrorHandler from 'src/common/response-handling/error-handling';
import { AppLoggerService } from 'src/common/services/logger.service';
export declare class ProgramTemplateController {
    private readonly programTemplateService;
    private readonly templateFormSectionService;
    private readonly responseService;
    private readonly errorHandler;
    private readonly logger;
    constructor(programTemplateService: ProgramTemplateService, templateFormSectionService: TemplateFormSectionService, responseService: ResponseService, errorHandler: ErrorHandler, logger: AppLoggerService);
    findAll(filters: FilterProgramTemplateDto, res: Response): Promise<void>;
    findById(id: number, res: Response): Promise<void>;
    findByProgramType(programTypeId: number, res: Response): Promise<void>;
    create(createDto: CreateProgramTemplateDto, res: Response): Promise<void>;
    update(id: number, updateDto: UpdateProgramTemplateDto, res: Response): Promise<void>;
    publish(id: number, res: Response): Promise<void>;
    archive(id: number, res: Response): Promise<void>;
    delete(id: number, res: Response): Promise<void>;
    cloneFromMaster(templateId: number, cloneDto: CloneFromMasterDto, res: Response): Promise<void>;
    buildTemplateForm(templateId: number, dto: TemplateFormBuilderDto, res: Response): Promise<void>;
    updateTemplateForm(templateId: number, dto: UpdateTemplateFormDto, req: any, res: Response): Promise<void>;
}
