import { Contract, Provider } from 'ethers'; import { Fee, TradeInput } from '../types'; import { PairsCache } from './pairs_cache'; /** * RPC module for fee calculations */ export declare class FeeParametersRPC { private provider; private pairInfosContract; private referralContract?; private pairsCache; constructor(provider: Provider, pairInfosContract: Contract, pairsCache: PairsCache, referralContract?: Contract); /** * Get margin fee for all pairs (in basis points) * @returns Map of pair index to fee */ getMarginFee(): Promise>; /** * Get constant spread parameter for each pair * @returns Map of pair index to constant spread */ constantSpreadParameter(): Promise>; /** * Get opening fee for a position * @param positionSize - Position size in USDC * @param isLong - True for long, false for short * @param pairIndex - Pair index * @returns Opening fee in USDC */ getOpeningFee(positionSize: number, isLong: boolean, pairIndex: number): Promise; /** * Get opening fee for a new trade with referral * @param tradeInput - Trade input parameters * @param referrer - Referrer address (optional) * @returns Opening fee in USDC */ getNewTradeOpeningFee(tradeInput: TradeInput, referrer?: string): Promise; /** * Get trade referral rebate * @param trader - Trader address * @param referrer - Referrer address * @param openingFee - Opening fee amount * @returns Rebate amount */ getTradeReferralRebate(trader: string, referrer: string, openingFee: number): Promise; }