import type { Response } from 'express';
import { JobsService } from './jobs.service';
import { CreateJobDto } from './dto/create-job.dto';
import { JobsPdfService } from './jobs-pdf.service';
import { JobsExcelService } from './jobs-excel.service';
export declare class JobFilterQuery {
    companyName?: string;
    templateName?: string;
    stage?: string;
    startDate?: string;
    endDate?: string;
    page?: string;
    limit?: string;
}
export declare class JobsController {
    private readonly jobsService;
    private readonly jobsPdfService;
    private readonly jobsExcelService;
    constructor(jobsService: JobsService, jobsPdfService: JobsPdfService, jobsExcelService: JobsExcelService);
    create(dto: CreateJobDto): Promise<{
        id: number;
        jobCodes: string[];
        stage: import("./entities/job.entity").StageEnum;
        stages: {
            stageName: import("./entities/job.entity").StageEnum;
            md: string;
            docReview: Date | undefined;
            date: Date;
            auditBy: import("../user/entities/user.entity").User;
        }[];
        template: {
            id: number;
            name: string;
            stageName: import("../template/entities/template.entity").AuditStageName;
            version: string;
            filePath: string;
            isActive: boolean;
            contents: import("../template_contents/entities/template_content.entity").TemplateContent[];
        };
        companySnapshot: {
            companyName: string;
            companyAddress: string;
            companyScope: string;
            companycity: string;
            companycontact_person: string;
            companydesignation: string;
            companyemail: string;
            companymobile: string;
            companytelephone: string | null;
            companyFax: string | null;
            companyvalidity: string;
            companyaccreditation: string;
            companycertification_body: string;
            companyRefrence: string | null;
        };
        standards: {
            id: number;
            name: string;
            title: string;
        }[];
        company: {
            id: number;
            name: string;
            address: string;
            scope_of_work: string;
            city: string;
            contact_person: string;
            designation: string;
            email: string;
            mobile: string;
            telephone: string | null;
            fax: string | null;
            validity: string;
            accreditation: string;
            certification_body: string;
            reference_number: string | null;
        };
        date: Date;
        docReview: Date | undefined;
        numEmployees: number;
        naceEacCodes: string;
        md: string;
        mdRisk: import("./entities/job.entity").RiskLevel;
        createdAt: Date;
        updatedAt: Date;
        expectedSurveillanceDate: Date;
        expectedIADate: Date;
        expectedMRMDate: Date;
        expectedInitialInquiryDate: Date;
        expectedInitial_Stage1_Date: Date;
        prepareDate: Date;
        approvedDate: Date;
    }>;
    getNextJobNumber(): Promise<{
        nextJobNumber: string;
    }>;
    exportPdf(filters: JobFilterQuery, res: Response): Promise<void>;
    exportExcel(filters: JobFilterQuery, res: Response): Promise<void>;
    findAll(query: JobFilterQuery): Promise<{
        data: {
            company: {
                id: number;
                name: string;
            };
            id: number;
            jobCodes: string[];
            stage: import("./entities/job.entity").StageEnum;
            stages: {
                stageName: import("./entities/job.entity").StageEnum;
                md: string;
                docReview: Date | undefined;
                date: Date;
                auditBy: import("../user/entities/user.entity").User;
            }[];
            template: {
                url: string;
                id: number;
                name: string;
                stageName: string;
                version: string;
                filePath: string;
                isActive: boolean;
                contents: any[];
            };
            companySnapshot: any;
            standards: {
                id: number;
                name: string;
                title: string;
            }[];
            leadAuditor: import("../user/dto/user.dto").UserDto;
            date: Date;
            docReview: Date | undefined;
            numEmployees: number;
            naceEacCodes: string;
            md: string;
            mdRisk: import("./entities/job.entity").RiskLevel;
            scheduleSlot: "MORNING" | "AFTERNOON" | "FULL";
            expectedSurveillanceDate: Date;
            expectedIADate: Date;
            expectedMRMDate: Date;
            expectedInitialInquiryDate: Date;
            expectedInitial_Stage1_Date: Date;
            prepareDate: Date;
            approvedDate: Date;
            createdAt: Date;
            updatedAt: Date;
        }[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    findOne(id: number): Promise<{
        company: {
            id: number;
            name: string;
        };
        id: number;
        jobCodes: string[];
        stage: import("./entities/job.entity").StageEnum;
        stages: {
            stageName: import("./entities/job.entity").StageEnum;
            md: string;
            docReview: Date | undefined;
            date: Date;
            auditBy: import("../user/entities/user.entity").User;
        }[];
        template: {
            url: string;
            id: number;
            name: string;
            stageName: string;
            version: string;
            filePath: string;
            isActive: boolean;
            contents: any[];
        };
        companySnapshot: any;
        standards: {
            id: number;
            name: string;
            title: string;
        }[];
        leadAuditor: import("../user/dto/user.dto").UserDto;
        date: Date;
        docReview: Date | undefined;
        numEmployees: number;
        naceEacCodes: string;
        md: string;
        mdRisk: import("./entities/job.entity").RiskLevel;
        scheduleSlot: "MORNING" | "AFTERNOON" | "FULL";
        expectedSurveillanceDate: Date;
        expectedIADate: Date;
        expectedMRMDate: Date;
        expectedInitialInquiryDate: Date;
        createdAt: Date;
        updatedAt: Date;
    }>;
    remove(id: number): Promise<{
        message: string;
    }>;
}
