import { CreateEncaissementDto, CreateIndependentEncaissementDto } from './dto/create-encaissement.dto';
import { UpdateEncaissementDto, UpdateIndependentEncaissementDto } from './dto/update-encaissement.dto';
import { EncaissementService } from './Encaissement.service';
import { Response } from 'express';
export declare class EncaissementController {
    private readonly encaissementService;
    constructor(encaissementService: EncaissementService);
    createEncaissement(createEncaissementDto: CreateEncaissementDto, req: any): Promise<{
        message: string;
        id_encaissement: number;
    }>;
    createIndependentEncaissement(createIndependentEncaissementDto: CreateIndependentEncaissementDto, req: any): Promise<{
        message: string;
        id_encaissement: number;
    }>;
    updateEncaissement(id: number, updateData: UpdateEncaissementDto | UpdateIndependentEncaissementDto): Promise<{
        message: string;
    }>;
    getEncaissement(id: number): Promise<{
        id: number;
        id_consultation: number;
        id_patient: number;
        nom_complet_patient: any;
        montant_total: number;
        montant_regle: number;
        mode_paiement: string;
        date_paiement: string;
        date_consultation: string;
        statut: string;
        mode: string;
        id_mutuelle: number;
        nom_mutuelle: any;
        libelle_statut: string;
        libelle_mode: string;
        libelle_mode_paiement: string;
    }>;
    getEncaissementsByConsultation(id_consultation: number, page: number, limit: number): Promise<{
        liste: {
            id: number;
            id_consultation: number;
            id_patient: number;
            montant_total: number;
            montant_regle: number;
            mode_paiement: string;
            date_paiement: string;
            date_consultation: string;
            statut: string;
            mode: string;
            id_mutuelle: number;
            nom_mutuelle: any;
            libelle_statut: string;
            libelle_mode: string;
            libelle_mode_paiement: string;
        }[];
        total: number;
    }>;
    getAllEncaissements(req: any, page: number, limit: number, statut?: string, mode_paiement?: string, mode?: string, id_mutuelle?: string, date_debut?: string, date_fin?: string, date_consultation_debut?: string, date_consultation_fin?: string, patient_search?: string): Promise<{
        liste: {
            id: number;
            id_consultation: number;
            id_patient: any;
            nom_complet_patient: any;
            montant_total: number;
            montant_regle: number;
            mode_paiement: string;
            date_paiement: string;
            date_consultation: string;
            statut: string;
            mode: string;
            id_mutuelle: number;
            nom_mutuelle: any;
            libelle_statut: string;
            libelle_mode: string;
            libelle_mode_paiement: string;
        }[];
        total: number;
        page: number;
        totalPages: number;
    }>;
    getSoldeConsultation(id_consultation: string): Promise<{
        montant_total: number;
        montant_regle: number;
        solde_restant: number;
    }>;
    deleteEncaissement(id: number): Promise<{
        message: string;
    }>;
    getStatuts(): Promise<any>;
    getModes(): Promise<any>;
    getModesPaiement(): Promise<any>;
    getSoldePatient(id_patient: string): Promise<{
        montant_total_consultations: number;
        montant_regle_consultations: number;
        solde_restant: number;
    }>;
    exportEncaissementsCsv(req: any, res: Response, statut?: string, mode_paiement?: string, mode?: string, id_mutuelle?: string, date_debut?: string, date_fin?: string): Promise<void>;
}
