import { DataSource } from 'typeorm';
import { TemplateFormSectionRepository } from './template-form-section.repository';
import { TemplateQuestionRepository } from 'src/template-question/template-question.repository';
import { CreateTemplateFormSectionDto } from './dto/create-template-form-section.dto';
import { UpdateTemplateFormSectionDto } from './dto/update-template-form-section.dto';
import { FilterTemplateFormSectionDto } from './dto/filter-template-form-section.dto';
import { CloneFromMasterDto } from './dto/clone-from-master.dto';
import { TemplateFormBuilderDto } from './dto/template-form-builder.dto';
import { AppLoggerService } from 'src/common/services/logger.service';
import { MasterFormSectionRepository } from 'src/master-form-section/master-form-section.repository';
import { TemplateFormSection } from 'src/common/entities/template-form-section.entity';
import { MasterQuestionRepository } from 'src/master-question/master-question.repository';
import { ProgramTemplateRepository } from 'src/program-template/program-template.repository';
export declare class TemplateFormSectionService {
    private readonly templateFormSectionRepo;
    private readonly templateQuestionRepo;
    private readonly masterFormSectionRepo;
    private readonly masterQuestionRepo;
    private readonly programTemplateRepo;
    private readonly logger;
    private readonly dataSource;
    constructor(templateFormSectionRepo: TemplateFormSectionRepository, templateQuestionRepo: TemplateQuestionRepository, masterFormSectionRepo: MasterFormSectionRepository, masterQuestionRepo: MasterQuestionRepository, programTemplateRepo: ProgramTemplateRepository, logger: AppLoggerService, dataSource: DataSource);
    findAll(filters: FilterTemplateFormSectionDto): Promise<{
        data: TemplateFormSection[];
        pagination: {
            totalPages: number;
            pageNumber: number;
            pageSize: number;
            totalRecords: number;
        };
    }>;
    findById(id: number): Promise<TemplateFormSection>;
    getHierarchyByTemplate(programTemplateId: number): Promise<TemplateFormSection[]>;
    getChildren(parentId: number): Promise<TemplateFormSection[]>;
    getAncestors(sectionId: number): Promise<{
        section: TemplateFormSection;
        ancestors: TemplateFormSection[];
        breadcrumb: string[];
    }>;
    create(createDto: CreateTemplateFormSectionDto): Promise<TemplateFormSection>;
    update(id: number, updateDto: UpdateTemplateFormSectionDto): Promise<TemplateFormSection>;
    private isDescendantOf;
    delete(id: number): Promise<{
        deleted: boolean;
    }>;
    cloneFromMaster(cloneDto: CloneFromMasterDto): Promise<{
        success: boolean;
        clonedSections: number;
        sections: TemplateFormSection[];
        message: string;
    }>;
    private cloneSectionHierarchy;
    private cloneQuestionsForSections;
    private generateUniqueSectionKey;
    private generateUniqueQuestionCode;
    private deleteTemplateSectionWithDescendants;
    private processSectionRecursively;
    buildTemplateForm(dto: TemplateFormBuilderDto): Promise<{
        success: boolean;
        message: string;
        data: {
            templateFormSections: TemplateFormSection[];
            totalSectionsCreated: number;
            totalQuestionsCreated: number;
        };
    }>;
    private calculateSectionDepth;
    private validateTemplateParentSection;
    private isDescendantOfInTransaction;
}
