import { Contract, Provider } from 'ethers'; import { OpenInterest, OpenInterestLimits, Utilization, Skew, TradeInput } from '../types'; import { PairsCache } from './pairs_cache'; /** * RPC module for retrieving asset-level parameters */ export declare class AssetParametersRPC { private provider; private pairStorageContract; private pairInfosContract; private tradingStorageContract; private pairsCache; constructor(provider: Provider, pairStorageContract: Contract, pairInfosContract: Contract, pairsCache: PairsCache, tradingStorageContract: Contract); /** * Get open interest limits for all pairs * @returns Map of pair index to OI limits */ getOILimits(): Promise>; /** * Get current open interest for all pairs * @returns Map of pair index to OI */ getOI(): Promise>; /** * Get utilization for all pairs * @returns Map of pair index to utilization */ getUtilization(): Promise>; /** * Get asset skew (long / total) for all pairs * @returns Map of pair index to skew */ getAssetSkew(): Promise>; /** * Get price impact spread for opening a position * @param positionSize - Position size in USDC * @param isLong - True for long, false for short * @param pairIndex - Pair index * @returns Price impact spread percentage */ getPriceImpactSpread(positionSize: number, isLong: boolean, pairIndex: number): Promise; /** * Get skew impact spread * @param pairIndex - Pair index * @returns Skew impact spread */ getSkewImpactSpread(pairIndex: number): Promise; /** * Get opening price impact spread for a trade * @param tradeInput - Trade input parameters * @returns Opening price impact spread */ getOpeningPriceImpactSpread(tradeInput: TradeInput): Promise; /** * Get one percent depth (liquidity depth) * @returns Map of pair index to depth */ getOnePercentDepth(): Promise>; }