import { CreateChargeDto } from './dto/create-charge.dto';
import { UpdateChargeDto } from './dto/update-charge.dto';
import { ChargeService } from './charge.service';
import { UploadService } from 'src/modules/upload/upload.service';
import { CreateRecurringChargeDto } from './dto/create-recurring-charge.dto';
import { Response } from 'express';
export declare class ChargeController {
    private readonly chargeService;
    private readonly uploadService;
    constructor(chargeService: ChargeService, uploadService: UploadService);
    getCategories(req: any): Promise<{
        id_categorie: number;
        code_parametrage: string;
        libelle_parametrage: string;
        description: string;
    }[]>;
    getStatuts(): Promise<any>;
    getModes(): Promise<any>;
    getModesPaiement(): Promise<any>;
    getCharge(id: number, req: any): Promise<{
        libelle_categorie: string;
        libelle_statut: string;
        libelle_mode: string;
        libelle_mode_paiement: string;
        documents: {
            id_document: number;
            filename: string;
            extention: string;
            path: string;
        }[];
        id_charge: number;
        id_categorie: number;
        date_charge: Date;
        montant_ttc: number;
        date_paiement: Date;
        mode_paiement: string;
        statut: string;
        mode: string;
        numero_facture: string;
        date_facture: Date;
        description: string;
        id_cabinet: number;
        flag: boolean;
        created_at: Date;
        updated_at: Date;
        categorie: import("./entities/ChargeCategorie.entity").ChargeCategorie;
    }>;
    updateCharge(id: number, updateChargeDto: UpdateChargeDto, req: any): Promise<{
        message: string;
    }>;
    deleteCharge(id: number): Promise<{
        message: string;
    }>;
    createCharge(createChargeDto: CreateChargeDto, req: any): Promise<{
        message: string;
        id_charge: number;
    }>;
    getAllCharges(req: any, page?: number, limit?: number, categorie?: string, statut?: string, mode?: string, mode_paiement?: string): Promise<{
        liste: {
            id: number;
            libelle: string;
            description: string;
            montant_ttc: number;
            date_charge: Date;
            date_paiement: Date;
            statut: string;
            mode: string;
            mode_paiement: string;
            numero_facture: string;
            date_facture: Date;
            id_categorie: number;
            libelle_categorie: string;
            libelle_statut: string;
            libelle_mode: string;
            libelle_mode_paiement: string;
            documents: {
                id_document: number;
                filename: string;
                extention: string;
                path: string;
            }[];
            created_at: Date;
            updated_at: Date;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    uploadFiles(files: Array<Express.Multer.File>, req: any): Promise<{
        id_document: number;
    }[]>;
    createRecurringCharge(createRecurringDto: CreateRecurringChargeDto, req: any): Promise<{
        message: string;
        charges_created: number;
        ids: number[];
    }>;
    exportChargesCsv(req: any, res: Response, categorie?: string, statut?: string, mode?: string, mode_paiement?: string, date_charge_start?: string, date_charge_end?: string, date_paiement_start?: string, date_paiement_end?: string): Promise<void>;
}
