import { CreditTransaction } from './credit.model'; import { ReturnModelType } from '@typegoose/typegoose'; import { RefundCreditTransactionDto, ReceiveCreditTransactionDto, SpentCreditTransactionDto } from './credit.interface'; import { QueryPopulateOptions } from 'mongoose'; import { MembershipService } from '~backend/marketing/membership/membership.service'; import mongodb from 'mongodb'; import { MailService } from '~backend/mail/mail.service'; import { FreeCreditOption } from '../marketing.model'; export declare class CreditService { readonly creditModel: ReturnModelType; private readonly membershipService; private readonly mailService; private readonly logger; constructor(creditModel: ReturnModelType, membershipService: MembershipService, mailService: MailService); static getExpiredAt(credit: FreeCreditOption, date?: Date): any; get memberModel(): ReturnModelType; findById(id: any): Promise; findByMember(id: string, populates?: (string | QueryPopulateOptions)[]): Promise; runCreditCycle(currentTime?: Date): Promise; receiveCredit(payload: ReceiveCreditTransactionDto, session: mongodb.ClientSession): Promise; refundReceive(payload: RefundCreditTransactionDto, session: mongodb.ClientSession): Promise; spentCredit(payload: SpentCreditTransactionDto, session: mongodb.ClientSession): Promise; refundSpent(payload: RefundCreditTransactionDto, session: mongodb.ClientSession): Promise; }