import { BaseService, FileService, SysSettingsService } from "@certd/lib-server"; import { EntityManager, Repository } from "typeorm"; import { UserWalletEntity, UserWalletLogEntity, UserWalletWithdrawEntity } from "../entity/index.js"; import { SysWalletSetting, UserWalletWithdrawChannel, UserWalletWithdrawSetting } from "../settings.js"; export type UserWalletSummary = { totalAmount: number; availableAmount: number; frozenAmount: number; totalIncomeAmount: number; totalConsumedAmount: number; totalWithdrawAmount: number; }; type UserSettingsServiceLike = { getSetting(userId: number, projectId: number, type: any, cache?: boolean): Promise; saveSetting(userId: number, projectId: number, bean: T): Promise; }; export declare class WalletService extends BaseService { repository: Repository; logRepository: Repository; withdrawRepository: Repository; sysSettingsService: SysSettingsService; userSettingsService: UserSettingsServiceLike; fileService: FileService; getRepository(): Repository; getSummary(userId: number): Promise; ensureWallet(userId: number, manager?: EntityManager): Promise; addIncome(req: { userId: number; amount: number; tradeId?: number; remark?: string; manager: EntityManager; }): Promise; income(req: { userId: number; amount: number; tradeId?: number; remark?: string; manager: EntityManager; }): Promise; frozenByTrade(req: { userId: number; tradeId: number; amount: number; manager: EntityManager; }): Promise; consumeByTrade(req: { userId: number; tradeId: number; amount: number; manager: EntityManager; }): Promise; cancelByTrade(req: { userId: number; tradeId: number; amount: number; manager: EntityManager; }): Promise; saveWithdrawSetting(userId: number, body: { channel?: UserWalletWithdrawChannel; realName?: string; account?: string; bankName?: string; qrCode?: string; }): Promise; getWithdrawSetting(userId: number): Promise; withdrawApply(userId: number, amount: number): Promise; applyWithdraw(userId: number, amount: number): Promise; approveWithdraw(id: number, auditUserId: number, auditRemark?: string): Promise; rejectWithdraw(id: number, auditUserId: number, auditRemark?: string): Promise; auditWithdraw(req: { id: number; auditUserId: number; auditRemark?: string; status: "approved" | "rejected"; }): Promise; withdrawPage(userId: number, body: any): Promise<{ records: UserWalletWithdrawEntity[]; total: number; offset: any; limit: any; }>; logPage(userId: number, body: any): Promise<{ records: UserWalletLogEntity[]; total: number; offset: any; limit: any; }>; sysWithdrawPage(body: any): Promise<{ records: UserWalletWithdrawEntity[]; total: number; offset: any; limit: any; }>; checkWithdrawChannelEnabled(channel: UserWalletWithdrawChannel): Promise; private checkWithdrawBankEnabled; private getEnabledWithdrawBanks; private pageByRepository; private addLog; private doWalletTrade; private doBalanceChange; private frozen; private unfrozen; private getWallet; private increaseTotal; private getTradeRemark; private withdrawApprove; private withdrawReject; private withdrawCancel; private toAmount; private toSignedAmount; private toWalletSummary; } export {};