import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { CompaniesService } from '../companies/companies.service';
import { CompanyAuditsService } from '../company-audits/company-audits.service';
import { CompanyAuditStagesService } from '../company-audit-stages/company-audit-stages.service';
import { Template } from "../template/entities/template.entity";
import { TemplateContentService } from '../template_contents/template_contents.service';
import { TemplateService } from '../template/template.service';
import { JobsService } from '../jobs/jobs.service';
export declare class PdfService implements OnModuleInit, OnModuleDestroy {
    private readonly companiesService;
    private readonly auditService;
    private readonly stageService;
    private readonly jobsService;
    private readonly templateService;
    private readonly templateContentsService;
    [x: string]: any;
    private readonly logger;
    private browser;
    private concurrentPages;
    private activePages;
    private queue;
    private compiledCache;
    constructor(companiesService: CompaniesService, auditService: CompanyAuditsService, stageService: CompanyAuditStagesService, jobsService: JobsService, templateService: TemplateService, templateContentsService: TemplateContentService);
    onModuleInit(): Promise<void>;
    onModuleDestroy(): Promise<void>;
    private registerHandlebarsHelpers;
    private launchBrowser;
    findByFilePath(filePath: string): Promise<Template | null>;
    getCompanyData(companyId: number, templateId?: number): Promise<{
        company: {
            standardsList: string[];
            id: number;
            company_code: string;
            name: string;
            normalized_name: string;
            branches: import("../companies/entities/company-branch.entity").CompanyBranch[];
            trade_license_no: string | null;
            clientLinks: import("../companies/entities/company-client-link.entity").CompanyClientLink[];
            address: string;
            city: string;
            contact_person: string;
            designation: string;
            email: string;
            mobile: string;
            telephone: string | null;
            fax: string | null;
            reference_number: string | null;
            validity: string;
            certification_body: string;
            client_group: string;
            accreditation: string;
            scope_of_work: string;
            documents?: {
                originalName: string;
                fileName: string;
                filePath: string;
            }[];
            created_by_id: number | null;
            scheme: "QRS" | "TQS";
            legacy_source: "QRS" | "TQS" | null;
            legacy_ref_id: number | null;
            client_status: "LEAD" | "PROSPECT" | "ACTIVE" | "INACTIVE";
            nc_stamp_img: string | null;
            country: import("../countries/entities/country.entity").Country;
            standards: import("../standards/entities/standard.entity").Standard[];
            created_at: Date;
            updated_at: Date;
        };
        audits: import("../company-audits/entities/company-audit.entity").CompanyAudit[];
        stages: {
            auditDate: string;
            id: number;
            audit: import("../company-audits/entities/company-audit.entity").CompanyAudit;
            stageName: import("../company-audit-stages/entities/company-audit-stage.entity").AuditStageName;
            auditBy: import("../user/entities/user.entity").User;
            technicalExpert: string;
            anzicCode: string;
            remarks: string;
            createdBy: import("../user/entities/user.entity").User;
            createdAt: Date;
            updatedAt: Date;
        }[];
        jobs: import("../jobs/entities/job.entity").Job[];
        template: Template | null;
        templateContent: never[];
    }>;
    loadTemplate(stage: 'stage1' | 'stage2', templateName: string): string;
    renderTemplate(stage: 'stage1' | 'stage2', templateName: string, data: any): string;
    private acquirePage;
    private releasePage;
    generatePdf(html: string): Promise<Buffer>;
    getJobTemplateContent(job: any): Promise<any[] | null>;
    generateJobPdf(job: any, stage: 'stage1' | 'stage2', templateName: string): Promise<Buffer>;
    generateStaticPdf(fileName: string): Promise<Buffer>;
}
