import { DataSource, Repository } from 'typeorm';
import { CreateCertifDto } from './dto/create-certif.dto';
import { DureeService } from '../functions/correctDureeType.function';
import { TraceDelivrance } from '../trace_delivrance/entities/trace-delivrance.entity';
export declare class CertificatMedicalService {
    private readonly dataSource;
    private readonly dureeService;
    private readonly traceDelivranceRepository;
    constructor(dataSource: DataSource, dureeService: DureeService, traceDelivranceRepository: Repository<TraceDelivrance>);
    create(id_patient: number, id_medecin: number, dto: CreateCertifDto): Promise<{
        message: string;
    }>;
    update(id_certificat_medical: number, dto: CreateCertifDto): Promise<{
        message: string;
    }>;
    prolongerCertificat(id_certificat_medical: number, dto: CreateCertifDto): Promise<{
        message: string;
        nouvelle_duree: string;
        duree_prolongement: string;
        flag_prolongement: Boolean;
    }>;
    getCertificat(id_certificat_medical: number): Promise<{
        type_certificat: any;
        duree: string;
        id_certificat_medical: number;
        code_type_certificat: string;
        id_patient: number;
        id_medecin: number;
        date: Date;
        date_debut: Date;
        duree_type: string;
        flag: Boolean;
        flag_prolongement: Boolean;
        duree_prolongement: number;
        duree_prolongement_type: string;
    }>;
    getCertificats(id_patient: number, page?: number, limit?: number): Promise<{
        data: {
            date: string;
            date_debut: string;
            duree: string;
            duree_prolongement: any;
            date_delivrance: Date;
            id_certificat_medical: number;
            code_type_certificat: string;
            id_patient: number;
            id_medecin: number;
            duree_type: string;
            flag: Boolean;
            flag_prolongement: Boolean;
            duree_prolongement_type: string;
        }[];
        total: number;
        page: number;
        limit: number;
    }>;
    formatDate(date: any, format: string): string;
    delete(id_certificat_medical: number): Promise<{
        message: string;
    }>;
    getTypeCertificat(): Promise<any>;
}
