import { Repository } from 'typeorm';
import { CommunicationTemplatesMaster } from 'src/common/entities/communication-templates-master.entity';
import { CommunicationTypeEnum } from 'src/common/enum/communication-type.enum';
export declare class CommunicationTemplatesMasterRepository {
    private readonly repository;
    private readonly logger;
    constructor(repository: Repository<CommunicationTemplatesMaster>);
    getTemplateIdBasedOnEnvironment(template: CommunicationTemplatesMaster): string;
    findActiveSummariesByProgramTypeId(programTypeId: number): Promise<CommunicationTemplatesMaster[]>;
    findAllByProgramTypeId(programTypeId: number, templateUsageType?: string): Promise<CommunicationTemplatesMaster[]>;
    findAll(limit?: number, offset?: number): Promise<any>;
    findById(id: number): Promise<CommunicationTemplatesMaster | null>;
    findByTemplateKey(templateKey: string): Promise<CommunicationTemplatesMaster | null>;
    findByTemplateKeyAndType(templateKey: string, templateType: CommunicationTypeEnum): Promise<CommunicationTemplatesMaster | null>;
    findByType(templateType: CommunicationTypeEnum): Promise<CommunicationTemplatesMaster[]>;
    create(data: Partial<CommunicationTemplatesMaster>): Promise<CommunicationTemplatesMaster>;
    update(id: number, data: Partial<CommunicationTemplatesMaster>): Promise<CommunicationTemplatesMaster | null>;
    softDelete(id: number): Promise<void>;
    findAllWithMergeFields(): Promise<CommunicationTemplatesMaster[]>;
    findInvalidMasterIdsForProgramType(programTypeId: number, masterTemplateIds: number[]): Promise<number[]>;
}
