import { Contract, TransactionReceipt } from 'ethers'; import { ReferralTier, ReferralDiscount } from '../types'; import { BaseSigner } from '../signers/base'; /** * Referral Operations RPC * Handles referral program functionality including codes, tiers, and discounts */ export declare class ReferralOperationsRPC { private referralContract; private signer?; constructor(referralContract: Contract, signer?: BaseSigner | undefined); /** * Get referral information for a trader * @param account - Trader address * @returns Referral code and referrer address */ getTraderReferralInfo(account: string): Promise<{ code: string; referrer: string; }>; /** * Get referrer tier * @param account - Referrer address * @returns Tier ID */ getReferrerTier(account: string): Promise; /** * Get tier information * @param tierId - Tier ID * @returns Tier information with fee discount and rebate percentages */ getTierInfo(tierId: number): Promise; /** * Calculate referral discount for a trader and fee * @param account - Trader address * @param fee - Original fee amount * @returns Discount information */ getTraderReferralDiscount(account: string, fee: number): Promise; /** * Set referral code for the caller * @param code - Referral code (max 32 characters) * @returns Transaction receipt */ setReferralCode(code: string): Promise; /** * Check if an account has a referral code set * @param account - Trader address * @returns True if referral code is set */ hasReferralCode(account: string): Promise; /** * Get effective fee after referral discount * @param account - Trader address * @param baseFee - Base fee amount * @returns Effective fee after discount */ getEffectiveFee(account: string, baseFee: number): Promise; /** * Helper method to sign and send transactions */ private signAndSend; /** * Set signer for transactions */ setSigner(signer: BaseSigner): void; }