import { ClientGrpc } from '@nestjs/microservices'; import { Connection, EntityManager, Repository } from 'typeorm'; import { Payload as RollbackRewardDepletionMessagePayload } from '../pubsub/interfaces/rollbackRewardStock'; import { Payload as RollbackRewardStockRedeemCancelMessagePayload } from '../pubsub/interfaces/rollbackRewardStockRedeemCancel'; import { StockService } from '../stock/stock.service'; import { AutocompleteRewardsDto } from './dto/autocompleteRewards.dto'; import { AutocompleteRewardsResponseDto } from './dto/autocompleteRewardsResponse.dto'; import { CreateRewardDto } from './dto/createReward.dto'; import { GetAllByCustomerCampaignDto } from './dto/getAllByCustomerCampaign.dto'; import { GetAllByCustomerCampaignResponseDto } from './dto/getAllByCustomerCampaignResponse.dto'; import { GetRewardsDto } from './dto/getRewards.dto'; import { GetRewardsByProgramDto } from './dto/getRewardsByProgram.dto'; import { UpdateRewardDto } from './dto/updateReward.dto'; import { ICancelRewardStockDepletionInput, IDepleteRewardsStockInput, IDepleteRewardsStockItemInput, IGetRewardsFromRedeemInput, IGetRewardsFromRedeemOutput } from './interface/grpc/rewardsService.interface'; import { Rewards } from './rewards.entity'; export declare class RewardsService { private readonly repository; private readonly stockService; private connection; private campaignGrpcClient; private customerClient; private redeemGrpcClient; private readonly logger; private campaignGrpcService; private storeService; private redeemService; constructor(repository: Repository, stockService: StockService, connection: Connection, campaignGrpcClient: ClientGrpc, customerClient: ClientGrpc, redeemGrpcClient: ClientGrpc); onModuleInit(): void; create(reward: CreateRewardDto): Promise; private validateRewardStockForType; private uploadImage; update(reward: UpdateRewardDto): Promise; private removeCustomersCategoriesFromReward; get(filters: GetRewardsDto | GetRewardsByProgramDto): Promise<{ data: Rewards[]; count: number; }>; getOne(id: string): Promise; autocomplete(data: AutocompleteRewardsDto): Promise; getRewardsFromRedeem(input: IGetRewardsFromRedeemInput): Promise; depleteRewardsStock(input: IDepleteRewardsStockInput): Promise; updateRewardStock(rewards: IDepleteRewardsStockItemInput[], manager: EntityManager): Promise; shouldUpdateRewardStock(rewardId: string, manager: EntityManager): Promise; private getRewardStockUpdatePromise; private getStocksCreatePromise; private getRewardWithManager; private getStoreById; rollbackRewardsStockDepletion({ id, }: RollbackRewardDepletionMessagePayload): Promise; cancelRewardStockDepletion({ redeemId: id, }: ICancelRewardStockDepletionInput): Promise; rollbackCancelRewardStockDepletion({ id, }: RollbackRewardStockRedeemCancelMessagePayload): Promise; getRewardStockAdditionUpdatePromiseWithManager(rewardId: string, quantity: number, manager: EntityManager): Promise; getRewardStockSubtractionUpdatePromiseWithManager(rewardId: string, quantity: number, manager: EntityManager): Promise; getRewardsStock(rewardsIds: string[]): Promise; getAllByCustomerCampaign(customerId: string, filters: GetAllByCustomerCampaignDto): Promise; private extractRewardsIdsFromGrpcCustomerCampaign; private getRewardsByIds; private createCampaignSubquery; private isValidCustomerCampaignRewardIds; private mergeRewardsAndRedeemInfo; private populateRedeemInfoProps; private getRedeemByRewardsIds; }