import type { Response } from 'express';
import { CompanyDocumentsService } from './company-documents.service';
import type { GenerateBody } from './company-documents.service';
import { CompanyJobsService } from './company-jobs.service';
import type { CreateJobsBody } from './company-jobs.service';
export declare class CompanyDocumentsController {
    private readonly svc;
    private readonly jobs;
    constructor(svc: CompanyDocumentsService, jobs: CompanyJobsService);
    private uid;
    access(req: any): Promise<{
        view: boolean;
        stages: ("Stage 1" | "Stage 2")[];
        source: "legacy" | "permissions" | "none";
    }>;
    transferUsers(req: any): Promise<{
        id: number;
        name: any;
        email: any;
        job_docs: boolean;
        transferred: number;
    }[]>;
    transferPreview(month: string, type: string, req: any): Promise<{
        ready: boolean;
        month: string;
        audits: {
            id: number;
            audit_code: any;
            audit_type: any;
            audit_stage: any;
            status: any;
            company_id: number;
            company_name: any;
            company_code: any;
            schedule_date: any;
            lead_auditor: any;
            standards: any[];
            documents: number;
            assigned_to: number | null;
            assigned_to_name: any;
            assigned_at: any;
        }[];
    }>;
    transferSummary(req: any): Promise<{
        ready: boolean;
        groups: {
            user_id: number;
            name: any;
            month: any;
            audits: number;
            companies: number;
            row_ids: number[];
        }[];
    }>;
    myTransfers(req: any): Promise<{
        mode: "all";
        audits: number;
        months: string[];
    } | {
        mode: "initial";
        audits: number;
        months: string[];
    } | {
        mode: "transferred";
        audits: number;
        months: any[];
    }>;
    transfer(body: {
        toUserId: number;
        rowIds: number[];
        note?: string;
    }, req: any): Promise<{
        transferred: number;
        to: number;
    }>;
    untransfer(body: {
        rowIds: number[];
    }, req: any): Promise<{
        removed: number;
    }>;
    codebook(q: string): Promise<any>;
    jobPdf(jobId: number, download: string, req: any, res: Response): Promise<void>;
    jobDocx(jobId: number, req: any, res: Response): Promise<void>;
    jobForm(companyId: number, req: any): Promise<{
        company: any;
        audits: any[];
        templates: {
            id: number;
            name: string;
            stage_name: "Stage 1" | "Stage 2";
            prints: string[];
        }[];
        allowed_stages: ("Stage 1" | "Stage 2")[];
        initial_only: boolean;
        duplicates: {
            id: number;
            name: any;
            company_code: any;
            contact_person: any;
            mobile: any;
            email: any;
        }[];
        can_update_company: boolean;
        users: {
            id: any;
            name: any;
            is_auditor: boolean;
        }[];
        standards: any[];
    }>;
    companyJobs(companyId: number, req: any): Promise<{
        id: any;
        jobCodes: string[];
        stage: any;
        date: any;
        template: any;
        standards: any[];
        lead_auditor: any;
        audit_schedule_row_id: any;
        created_at: any;
        pdf_url: string;
    }[]>;
    zip(companyId: number, stage: string, format: string, req: any, res: Response): Promise<void>;
    createJobs(companyId: number, body: CreateJobsBody, req: any): Promise<{
        created: number;
        jobs: {
            id: number;
            jobCode: string;
            template: string;
            stage: string;
        }[];
        company_updated: string[];
    }>;
    pack(packId: number, req: any): Promise<any>;
    file(packId: number, which: string, download: string, req: any, res: Response): Promise<void>;
    audits(companyId: number, req: any): Promise<{
        company: any;
        audits: {
            id: any;
            audit_code: any;
            audit_type: any;
            audit_stage: any;
            audit_mode: any;
            status: any;
            schedule_date: any;
            audit_time: any;
            lead_auditor_id: any;
            lead_auditor: any;
            standards: {
                id: any;
                name: any;
                title: any;
            }[];
            default_stage: import("./pack.rules").PackStage;
            default_forms: {
                stage1: string[];
                stage2: string[];
            };
            prefill: {
                date: any;
                scheduleSlot: string;
                leadAuditorId: any;
                standardIds: any[];
                expectedSurveillanceDate: string | null;
                expectedIADate: string | null;
                expectedMRMDate: string | null;
                expectedInitialInquiryDate: any;
                expectedInitial_Stage1_Date: any;
                docReview: string;
                prepareDate: string;
            };
        }[];
        catalogue: {
            key: string;
            stage: import("./pack.rules").PackStage;
            title: string;
            form_no: string | null;
            fields: import("./pack.rules").PackField[];
            variant_for: string | null;
            for_std: import("./pack.rules").StdKey | null;
        }[];
        packs: any[];
        can_generate: boolean;
    }>;
    packs(companyId: number, req: any): Promise<any[]>;
    generate(companyId: number, body: GenerateBody, req: any): Promise<any>;
}
