/// <reference types="multer" />
import { UploadService } from './upload.service';
import { GetDocumentCategories } from './dto/get-document-categories.dto';
import RequestWithUser from 'src/common/interfaces/requestWithUser.interface';
import { DocumentUpload } from './dto/document-upload.dto';
import { GetDocuments } from './dto/get-documents.dto';
import { FileDownload } from './dto/file-download.dto';
import { Response } from 'express';
export declare class UploadController {
    private uploadService;
    constructor(uploadService: UploadService);
    categories(body: GetDocumentCategories): Promise<{
        data: {
            document_category_id: number;
            category_type: string;
            position: string;
            category_name_en: string;
            category_name_afr: string;
            hidden: boolean;
        }[];
    }>;
    documentUploads(req: RequestWithUser, body: GetDocuments): Promise<{
        data: {
            documents: {
                user_group_id: number;
                document_category_id: number;
                originalname: string;
                created_at: Date;
                document_upload_id: number;
            }[];
            categories: {
                document_category_id: number;
                category_type: string;
                category_name_en: string;
                category_name_afr: string | null;
            }[];
            groups: {
                user_group_id: number;
                group_name: string;
            }[];
        };
    }>;
    document(req: RequestWithUser, body: DocumentUpload, file: Express.Multer.File): Promise<void>;
    getAllGroups(): Promise<{
        data: {
            user_group_id: number;
            group_name: string;
            bis_id: number;
        }[];
    }>;
    allDocumentUploads(body: GetDocuments): Promise<{
        data: {
            documents: {
                user_group_id: number;
                user_id: number;
                document_category_id: number;
                originalname: string;
                created_at: Date;
                document_upload_id: number;
            }[];
            categories: {
                document_category_id: number;
                category_type: string;
                category_name_en: string;
                category_name_afr: string | null;
            }[];
            groups: {
                user_group_id: number;
                group_name: string;
            }[];
            users: {
                user_id: number;
                firstname: string | null;
                lastname: string | null;
            }[];
        };
    }>;
    downloadDocument(res: Response, body: FileDownload): Promise<void>;
}
