import type { Response } from 'express';
import { ChecklistsService } from './services/checklists.service';
import { NotifyClientDto } from './dto/notify-client.dto';
export declare class ChecklistsController {
    private readonly service;
    constructor(service: ChecklistsService);
    listTemplates(onlyMine: string | undefined, req: any): Promise<import("./entities/checklist-template.entity").ChecklistTemplate[]>;
    createTemplate(body: {
        name: string;
        is_generic: boolean;
        standard_id: number | null;
        items: {
            item_text: string;
            sort_order: number;
        }[];
    }, req: any): Promise<import("./entities/checklist-template.entity").ChecklistTemplate>;
    updateTemplate(id: number, body: {
        name: string;
        is_generic: boolean;
        standard_id: number | null;
        items: {
            id?: number;
            item_text: string;
            sort_order: number;
        }[];
    }): Promise<import("./entities/checklist-template.entity").ChecklistTemplate>;
    deleteTemplate(id: number): Promise<{
        success: boolean;
    }>;
    availableTemplates(rowId: number): Promise<import("./entities/checklist-template.entity").ChecklistTemplate[]>;
    build(rowId: number, body: {
        standard_id: number;
        template_item_ids: number[];
    }, req: any): Promise<import("./entities/audit-checklist.entity").AuditChecklist>;
    discardDraft(checklistId: number): Promise<{
        success: boolean;
    }>;
    submit(checklistId: number, req: any): Promise<import("./entities/audit-checklist.entity").AuditChecklist>;
    notifyClient(checklistId: number, body: NotifyClientDto, req: any): Promise<import("./entities/audit-checklist.entity").AuditChecklist>;
    getChecklists(rowId: number): Promise<import("./entities/audit-checklist.entity").AuditChecklist[]>;
    getForAuditor(rowId: number): Promise<import("./entities/audit-checklist-item.entity").AuditChecklistItem[]>;
    review(itemId: number, body: {
        decision: 'approve' | 'reject';
        note?: string;
    }, req: any): Promise<import("./entities/audit-checklist-item.entity").AuditChecklistItem>;
    notifyReview(checklistId: number, req: any): Promise<{
        success: boolean;
    }>;
    notifyRejections(checklistId: number, req: any): Promise<{
        success: boolean;
    }>;
    checklistPdf(checklistId: number, res: Response): Promise<void>;
    downloadDocument(itemId: number, res: Response): Promise<void>;
}
