import { MembershipService } from '~backend/marketing/membership/membership.service'; import { Membership, Level, Reward, Benefit, UpdateMembershipDto, Tier, Title, UpdateMemberDto, MembercardDesign, Member } from '~backend/marketing/membership/membership.model'; import { MembershipOverview, Member as IMember } from '~backend/marketing/membership/membership.interface'; import { VoucherService } from '~backend/marketing/voucher/voucher.service'; import { DeductCreditOption, FreeCreditOption, Voucher } from '~backend/marketing/marketing.model'; import { StoreOption } from '~backend/marketing/store/store.model'; import { StoreService } from '~backend/marketing/store/store.service'; import { CreditService } from '~backend/marketing/credit/credit.service'; import { Request } from 'express'; export declare class UpdateBenefitsDto { benefits: Benefit.Benefit[]; } export declare class UpdateTitlesDto { titles: Title.MembershipTitleDto[]; } export declare class MembershipController { private readonly storeService; private readonly creditService; private readonly membershipService; private readonly voucherService; private readonly logger; constructor(storeService: StoreService, creditService: CreditService, membershipService: MembershipService, voucherService: VoucherService); getByBusinessId(businessId: string): Promise; create(businessId: string): Promise; update(businessId: string, payload: UpdateMembershipDto): Promise; addMemberRewardVoucher(businessId: string, payload: Voucher): Promise; updateLevelCycle(businessId: string, payload: Level.Cycle): Promise; updateOnLevelReward(businessId: string, payload: Reward.OnLevelReward): Promise; updateOnJoinReward(businessId: string, payload: Reward.OnJoinReward): Promise; updateExperienceRange(businessId: string, payload: { expRange: Level.ExperienceRange[]; }): Promise; getMemberByUserId(userId: string): Promise; getMembersByBusinessId(businessId: string, limit: number, skip: number, sortBy: string, descending: string, search: string): Promise<{ totalResources: number; resources: IMember.MemberInfo[]; }>; updateMember(memberId: string, payload: UpdateMemberDto): Promise; freeCreditToMember(request: Request, businessId: string, memberId: string, payload: FreeCreditOption): Promise; deductCreditFromMember(request: Request, businessId: string, memberId: string, payload: DeductCreditOption): Promise; updateBenefits(businessId: string, payload: UpdateBenefitsDto): Promise; updateTier(businessId: string, payload: Tier.TierOption): Promise; updateTitles(businessId: string, payload: UpdateTitlesDto): Promise; updateStore(businessId: string, store: StoreOption): Promise; updateBundle(businessId: string, store: StoreOption): Promise; updateDesign(businessId: string, design: MembercardDesign.Default | MembercardDesign.Image): Promise; }