import { Repository } from 'typeorm';
import { TemplateQuestion } from 'src/common/entities/template-question.entity';
import { CreateTemplateQuestionDto } from './dto/create-template-question.dto';
import { UpdateTemplateQuestionDto } from './dto/update-template-question.dto';
import { FilterTemplateQuestionDto } from './dto/filter-template-question.dto';
export declare class TemplateQuestionRepository {
    private readonly templateQuestionRepo;
    constructor(templateQuestionRepo: Repository<TemplateQuestion>);
    findAll(filters: FilterTemplateQuestionDto): Promise<{
        data: TemplateQuestion[];
        pagination: {
            totalPages: number;
            pageNumber: number;
            pageSize: number;
            totalRecords: number;
        };
    }>;
    findById(id: number): Promise<TemplateQuestion | null>;
    findByQuestionCodeAndTemplate(questionCode: string, programTemplateId: number): Promise<TemplateQuestion | null>;
    findByTemplateSection(templateFormSectionId: number): Promise<TemplateQuestion[]>;
    findByProgramTemplate(programTemplateId: number): Promise<TemplateQuestion[]>;
    findByMasterQuestionAndTemplateSection(masterQuestionId: number, templateFormSectionId: number): Promise<TemplateQuestion | null>;
    getNextDisplayOrder(templateFormSectionId: number): Promise<number>;
    create(createDto: CreateTemplateQuestionDto): Promise<TemplateQuestion>;
    bulkCreate(questions: CreateTemplateQuestionDto[]): Promise<TemplateQuestion[]>;
    update(id: number, updateDto: UpdateTemplateQuestionDto): Promise<TemplateQuestion>;
    softDelete(id: number, userId?: number): Promise<boolean>;
}
