import { ModelsService } from 'src/models/models.service';
import { TransactionType, TransactionReason } from 'src/wallet/schema/wallet.transaction.schema';
import { CommonService } from 'src/common/common.service';
export interface WalletTransactionInput {
    user_id: string;
    amount: number;
    type: TransactionType;
    reason: TransactionReason;
    description?: string;
    reference_user_id?: string;
    reference_id?: string;
    currency?: string;
}
export interface WalletTransactionResult {
    success: boolean;
    transaction: any;
    new_balance: number;
    message: string;
}
export declare class WalletService {
    private readonly models;
    private readonly commonService;
    private readonly logger;
    constructor(models: ModelsService, commonService: CommonService);
    getOrCreateWallet(userId: string, currency?: string): Promise<any>;
    creditWallet(input: WalletTransactionInput): Promise<WalletTransactionResult>;
    getWalletBalance(userId: string): Promise<{
        balance: number;
        wallet: any;
    }>;
    getTransactionHistory(userId: string, page?: number, limit?: number, timeRange?: string, transactionType?: string): Promise<any>;
    processReferralReward(referrerUserId: string, referredUserId: string): Promise<WalletTransactionResult>;
}
