import { Logger } from '@nestjs/common'; import { ReturnModelType } from '@typegoose/typegoose'; import { MailService } from '~backend/mail/mail.service'; import { RewardService } from '~backend/marketing/reward/reward.service'; import { VoucherService } from '~backend/marketing/voucher/voucher.service'; import { UserService } from '~backend/user/user.service'; import { WebsocketService } from '~backend/websocket/websocket.service'; import { IDistributeDto } from '../base/base-reward-job.interface'; import { BaseRewardJobService } from '../base/base-reward-job.service'; import { IRewardJob } from '../reward-job.interface'; import { RewardJob } from '../reward-job.model'; import { IVoucherDispatchDto } from './voucher-reward-job.interface'; export declare class VoucherRewardJobService extends BaseRewardJobService { protected readonly rewardJobModel: ReturnModelType; protected readonly rewardService: RewardService; protected readonly userService: UserService; protected readonly voucherService: VoucherService; protected readonly websocketService: WebsocketService; protected readonly mailService: MailService; constructor(rewardJobModel: ReturnModelType, rewardService: RewardService, userService: UserService, voucherService: VoucherService, websocketService: WebsocketService, mailService: MailService); protected readonly logger: Logger; protected newJobObject(dto: IVoucherDispatchDto): IRewardJob; protected distribute({ job, user, member }: IDistributeDto): Promise<{ refs: Types.ObjectId[]; rewards: Types.ObjectId[]; }>; rollback(job: IRewardJob): Promise; }