import { UpdateEventDto } from './dto/updateEvent.dto';
import { Evenement } from './entities/envenement.entity';
import { Patient } from '../patient/entities/patient.entity';
import { DataSource, Repository } from 'typeorm';
import { CreateEventDto } from './dto/createEvent.dto';
import { Utilisateur } from '../user/entities/user.entity';
import { TypeConsultation } from '../type_consultation/entities/type_consultation.entity';
import { NotificationsFunctions } from '../functions/notifications.functions';
export declare class EvenementService {
    private readonly evenementRepository;
    private readonly patientRepository;
    private readonly userRepository;
    private readonly notificationsFunction;
    private readonly dataSource;
    constructor(evenementRepository: Repository<Evenement>, patientRepository: Repository<Patient>, userRepository: Repository<Utilisateur>, notificationsFunction: NotificationsFunctions, dataSource: DataSource);
    create(createEvenementDto: CreateEventDto, id_medecin: number, id_cabinet: number): Promise<Evenement>;
    update(UpdateEventDto: UpdateEventDto, id_evenement: number): Promise<Evenement>;
    private formatHeure;
    getEvenement(id_evenement: number, id_cabinet: number): Promise<{
        date: string;
        heure_demarre_estime: string;
        heure_fin: string;
        duree_estime: string;
        heure_entree: string;
        heure_demarre: string;
        id_evenement: number;
        id_medecin: number;
        id_cabinet: number;
        id_patient: number;
        id_consultation_src: number;
        id_lieu_de_consultation: number;
        id_cabinet_type_consultation: number;
        statut_evenement: string;
        note: string;
        flag_salle: boolean;
        deleted_at: Date;
        cabinet_type_consultation: TypeConsultation;
    }>;
    getEvenements(id_cabinet: number, date_debut: Date, date_fin: Date, statut: string, id_cabinet_type__consultaion: number, id_medecin: number, id_lieu_de_consultation: number): Promise<any>;
    getMedecinsCabinet(id_cabinet: number): Promise<any[]>;
    private formatDateTime;
    delete(id_evenement: number): Promise<{
        message: string;
    }>;
    getEvenementPatient(id_patient: number, page?: number, limit?: number): Promise<{
        data: {
            date: string;
            libelle_type_consultation: string;
            statut: any;
            id_evenement: number;
            id_medecin: number;
            id_cabinet: number;
            id_patient: number;
            id_consultation_src: number;
            id_lieu_de_consultation: number;
            id_cabinet_type_consultation: number;
            statut_evenement: string;
            note: string;
            heure_demarre_estime: string;
            duree_estime: string;
            heure_entree: string;
            heure_demarre: string;
            heure_fin: string;
            flag_salle: boolean;
            deleted_at: Date;
            cabinet_type_consultation: TypeConsultation;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getEvenementsJ_1(): Promise<Evenement[]>;
    updateAppointmentStatusToCompleted(id_patient: number, consultationDate: Date): Promise<void>;
    sendNotification(): Promise<void>;
    getHorairesCabinet(id_cabinet: number): Promise<{
        heure_depart: any;
        heure_arret: any;
    }>;
    getMedecinDefaut(id_cabinet: number, user: any): Promise<{
        id: number | null;
        nomComplet: string | null;
    }>;
    getConsultationFiche(id_consultation_src: number): Promise<any>;
}
