import type { Response } from 'express';
import { ChecklistTemplatesAccessService } from './services/checklist-templates-access.service';
export declare class ChecklistTemplatesAccessController {
    private readonly access;
    constructor(access: ChecklistTemplatesAccessService);
    mine(req: any): Promise<{
        is_admin: boolean;
        checklists: {
            id: number;
            name: string;
            created_by: number | null;
            can_edit: boolean;
            standard_id: number | null;
            standard_ids: number[];
            is_shareable: boolean;
            items: {
                id: number;
                item_text: string;
                category: string | null;
                sort_order: number;
                is_active: boolean;
            }[];
            files: {
                id: number;
                original_name: string;
                size_bytes: number;
                mime: string | null;
                created_at: Date;
            }[];
            shared_user_ids: number[];
        }[];
    }>;
    rename(id: number, body: {
        name: string;
    }, req: any): Promise<import("./entities/checklist-template.entity").ChecklistTemplate>;
    setShareable(id: number, body: {
        is_shareable: boolean;
    }, req: any): Promise<{
        id: number;
        is_shareable: boolean;
    }>;
    setStandards(id: number, body: {
        standard_ids: number[];
    }, req: any): Promise<{
        id: number;
        standard_ids: number[];
    }>;
    remove(id: number, req: any): Promise<void>;
    addItem(id: number, body: {
        item_text: string;
        category?: string;
    }, req: any): Promise<import("./entities/checklist-template-item.entity").ChecklistTemplateItem>;
    updateItem(itemId: number, body: any, req: any): Promise<import("./entities/checklist-template-item.entity").ChecklistTemplateItem>;
    deleteItem(itemId: number, req: any): Promise<{
        removed: boolean;
        hidden: boolean;
    }>;
    setShares(id: number, body: {
        user_ids: number[];
    }, req: any): Promise<{
        template_id: number;
        shared_user_ids: number[];
    }>;
    uploadFile(id: number, file: any, req: any): Promise<{
        file: import("./entities/checklist-template-file.entity").ChecklistTemplateFile;
        format: string;
        supported: boolean;
        items_added: number;
        items_skipped: number;
    }>;
    download(fileId: number, req: any, res: Response): Promise<void>;
    deleteFile(fileId: number, req: any): Promise<{
        removed: boolean;
    }>;
    picker(rowId: number, req: any): Promise<(import("./entities/checklist-template.entity").ChecklistTemplate & {
        is_mine: boolean;
        owner_name: string | null;
        shared_with_me: boolean;
    })[]>;
    visible(rowId: number, req: any): Promise<import("./entities/audit-checklist.entity").AuditChecklist[]>;
    buildAsMe(rowId: number, body: {
        standard_id: number;
        template_item_ids: number[];
    }, req: any): Promise<{
        built_by: number;
        id: number;
        audit_schedule_row_id: number;
        audit_schedule_row: import("../audit-schedules/entities/audit-schedule-row.entity").AuditScheduleRow;
        company_id: number;
        company: import("../companies/entities/company.entity").Company;
        standard_id: number;
        standard: import("../standards/entities/standard.entity").Standard;
        status: import("./entities/audit-checklist.entity").AuditChecklistStatus;
        submitted_by: number | null;
        submitted_by_user: import("../user/entities/user.entity").User | null;
        submitted_at: Date | null;
        client_notified_at: Date | null;
        client_submitted_at: Date | null;
        completed_at: Date | null;
        notify_emails: string | null;
        client_message: string | null;
        due_date: string | null;
        items: import("./entities/audit-checklist-item.entity").AuditChecklistItem[];
        created_at: Date;
        updated_at: Date;
    }>;
    addDraftItems(checklistId: number, body: {
        template_item_ids: number[];
    }, req: any): Promise<{
        added: number;
    }>;
    removeDraftItem(checklistId: number, templateItemId: number, req: any): Promise<{
        removed: boolean;
    }>;
}
