import { Repository } from 'typeorm';
import { Cabinet } from 'src/modules/cabinet/entities/cabinet.entity';
import { Paiement } from './entities/paiement.entity';
import { Parametrage } from '../parametrage/entities/parametrage.entity';
import { CreatePaiementDto } from './dto/create-paiement.dto';
import { UpdatePaiementDto } from './dto/update-paiement.dto';
import { DataSource } from 'typeorm';
export declare class AbonnementService {
    private readonly cabinetRepository;
    private readonly paiementRepository;
    private readonly parametrageRepository;
    private readonly dataSource;
    constructor(cabinetRepository: Repository<Cabinet>, paiementRepository: Repository<Paiement>, parametrageRepository: Repository<Parametrage>, dataSource: DataSource);
    getAbonnementInfo(cabinetId: number): Promise<any>;
    getStatutsPaiement(): Promise<any>;
    getAllPaiementsHistory(): Promise<any[]>;
    getPaiementsHistoryByCabinet(cabinetId: number): Promise<any[]>;
    private getStatutLibelle;
    private validateCode;
    private validatePaiementCodes;
    notifyBeforeExpiration(): Promise<void>;
    private sendNotification;
    isAbonnementActif(cabinetId: number): Promise<boolean>;
    checkAbonnementExpiration(cabinetId: number): Promise<{
        expirant: boolean;
        joursRestants: number;
        dateFin: Date | null;
    }>;
    private getParametrageValue;
    createPaiement(createPaiementDto: CreatePaiementDto): Promise<Paiement>;
    updatePaiement(id: string, updatePaiementDto: UpdatePaiementDto): Promise<Paiement>;
    deletePaiement(id: string): Promise<{
        deleted: boolean;
        id: string;
    }>;
}
