import { Repository } from 'typeorm';
import { NewCertificate } from './entities/new-certificate.entity';
import { CertificateVersionHistory } from './entities/certificate_version_history';
import { Company } from '../companies/entities/company.entity';
import { Standard } from '../standards/entities/standard.entity';
import { ExcelService } from '../excel/excel.service';
import { CreateCertificateDto } from './dto/create-certificate.dto';
import { UpdateCertificateDto } from './dto/update-certificate.dto';
export declare class CertificatesService {
    private readonly certRepo;
    private readonly versionRepo;
    private readonly companyRepo;
    private readonly standardRepo;
    private readonly excelService;
    updateFull(id: number, dto: UpdateCertificateDto): NewCertificate | PromiseLike<NewCertificate>;
    constructor(certRepo: Repository<NewCertificate>, versionRepo: Repository<CertificateVersionHistory>, companyRepo: Repository<Company>, standardRepo: Repository<Standard>, excelService: ExcelService);
    buildVerificationUrl(certificate: NewCertificate): string;
    private getStandardShort;
    private parseLegacyCertNo;
    private expandLegacyStandard;
    private findLegacyMatch;
    private findPreviousCertNo;
    private generateCertificateNo;
    generateQrCode(token: string, fingerprint?: string, domain?: 'local' | 'international'): Promise<string>;
    private generateUniqueToken;
    private generateFingerprint;
    create(dto: CreateCertificateDto): Promise<{
        certificates: Array<{
            certificate: NewCertificate;
            qrCodeDataUrl: string;
            verification_url: string;
            action: string;
            source: string;
        }>;
        summary: {
            total: number;
            reused: number;
            generated: number;
        };
    }>;
    updatePartial(id: number, dto: Partial<UpdateCertificateDto>): Promise<NewCertificate>;
    update(id: number, dto: UpdateCertificateDto): Promise<NewCertificate>;
    findAll(page?: number, search?: string): Promise<{
        data: NewCertificate[];
        total: number;
        page: number;
        lastPage: number;
    }>;
    findOne(id: number): Promise<any>;
    remove(id: number): Promise<{
        message: string;
    }>;
    private addVersionHistory;
    findByCertificateNo(certificateNo: string): Promise<NewCertificate>;
    verifyCertificate(token: string, fingerprint?: string): Promise<any>;
    getCertificateForDraft(id: number): Promise<{
        id: number;
        cert_no: string;
        certificate_no: string;
        certificate_number: string;
        scope_of_work: string;
        ea_codes: string;
        originally_registered: Date;
        issue_date: Date;
        expire_date: Date;
        surveillance_audit_due: Date | null;
        recertification_due: Date | null;
        qrCode: string;
        qr_code: string;
        verification_url: string;
        city: string;
        country: string;
        company: {
            name: string;
            address: string;
            accreditation: string;
            city: string;
            country: string;
        } | undefined;
        standard: {
            id: number;
            name: string;
            title: string;
        } | undefined;
    } | null>;
    resolveToken(token: string, fingerprint?: string): Promise<{
        id: number;
        certificate_no: string;
        company_name: string;
        standard: string;
        status: string;
        expire_date: Date;
        scan_pdf_url: string;
    }>;
    attachDigitalCopy(id: number, fileUrl: string): Promise<NewCertificate>;
}
