import { BaseService, ServiceContext, SysSettingsService } from "@certd/lib-server"; import { Repository } from "typeorm"; import { InviteCodeEntity, InviteCommissionLogEntity, InviteLevelEntity, InviteRelationEntity, InviteUserPlanEntity } from "../entity/index.js"; import { WalletService } from "../../wallet/index.js"; export declare class InviteService extends BaseService { repository: Repository; relationRepository: Repository; logRepository: Repository; levelRepository: Repository; userPlanRepository: Repository; sysSettingsService: SysSettingsService; walletService: WalletService; getRepository(): Repository; getMyInviteInfo(userId: number): Promise<{ enabled: boolean; levelEnabled: boolean; fixedCommissionRate: number; agreementContent: string; levelList: InviteLevelEntity[]; summary: { totalIncomeAmount: number; monthIncomeAmount: number; promotionAmount: number; inviteeCount: number; }; } | { currentLevel: any; nextLevel: any; levelList: any[]; userPlan: InviteUserPlanEntity; enabled: boolean; levelEnabled: boolean; fixedCommissionRate: number; inviteCode: string; inviteLink: string; agreementContent: string; summary: { totalIncomeAmount: number; monthIncomeAmount: number; promotionAmount: number; inviteeCount: number; }; wallet: import("../../wallet/index.js").UserWalletSummary; }>; openInvitePlan(userId: number): Promise<{ enabled: boolean; levelEnabled: boolean; fixedCommissionRate: number; agreementContent: string; levelList: InviteLevelEntity[]; summary: { totalIncomeAmount: number; monthIncomeAmount: number; promotionAmount: number; inviteeCount: number; }; } | { currentLevel: any; nextLevel: any; levelList: any[]; userPlan: InviteUserPlanEntity; enabled: boolean; levelEnabled: boolean; fixedCommissionRate: number; inviteCode: string; inviteLink: string; agreementContent: string; summary: { totalIncomeAmount: number; monthIncomeAmount: number; promotionAmount: number; inviteeCount: number; }; wallet: import("../../wallet/index.js").UserWalletSummary; }>; ensureInviteCode(ctx: ServiceContext, req: { userId: number; }): Promise; generateInviteCode(userId: number): string; getBindInfo(inviteCode: string): Promise<{ inviteCode: string; inviterUserId: number; }>; bindInvitee(ctx: ServiceContext, req: { inviteeUserId: number; inviteCode?: string; }): Promise; normalizeInviteCode(inviteCode?: string): string; settleCommission(ctx: ServiceContext, req: { tradeId: number; inviteeUserId: number; paidAmount: number; }): Promise; inviteePage(userId: number, body: any): Promise<{ records: InviteRelationEntity[]; total: number; offset: any; limit: any; }>; commissionPage(userId: number, body: any): Promise<{ records: InviteCommissionLogEntity[]; total: number; offset: any; limit: any; }>; private pageByRepository; private addLog; levelList(includeDisabled?: boolean): Promise; userLevelPage(body: any): Promise<{ records: any[]; total: number; offset: any; limit: any; }>; setUserLevel(req: { userId: number; levelId: number; }): Promise; syncUserLevelByAmount(ctx: ServiceContext, req: { userId: number; }): Promise; private buildInviteLink; private getInviteSummary; private buildLevelInfo; private emptyLevelInfo; private isLevelEnabled; private getFixedCommissionRate; private getLowestAutoLevel; private findMatchedAutoLevel; private sumLogAmount; private fillUserLevelSummary; private increasePromotionAmount; private getPlanPromotionAmount; private emptySummary; private fillSimpleUser; }