import { Repository, DataSource } from 'typeorm';
import { Template, AuditStageName, TemplateType } from './entities/template.entity';
import { CreateTemplateDto } from './dto/create-template.dto';
import { UpdateTemplateDto } from './dto/update-template.dto';
export declare class TemplateService {
    private readonly templateRepository;
    private readonly dataSource;
    [x: string]: any;
    constructor(templateRepository: Repository<Template>, dataSource: DataSource);
    create(dto: CreateTemplateDto): Promise<Template>;
    findByFilePath(filePath: string): Promise<Template | null>;
    findAll(stageName?: AuditStageName, companyId?: number, templateType?: TemplateType): Promise<{
        url: string;
        id: number;
        name: string;
        stageName: AuditStageName;
        templateType: TemplateType;
        version: string;
        filePath: string;
        isActive: boolean;
        createdBy: number;
        contents: import("../template_contents/entities/template_content.entity").TemplateContent[];
        jobs: import("../jobs/entities/job.entity").Job[];
        createdAt: Date;
        updatedAt: Date;
    }[]>;
    findOne(id: number, throwIfNotFound?: boolean): Promise<Template | null>;
    update(id: number, dto: UpdateTemplateDto): Promise<Template>;
    remove(id: number): Promise<{
        message: string;
    }>;
    findByNameAndStage(name: string, stageName: AuditStageName, version?: string, templateType?: TemplateType): Promise<Template | null>;
}
