/** * @dev Converters for OI data between contract and SDK formats * @dev Handles the three OI storage systems and precision conversions */ import { IBorrowingFees, IPriceImpact } from "../../contracts/types/generated/GNSMultiCollatDiamond"; import { UnifiedPairOi, ComputedOi } from "./types"; /** * @dev Converts pre-v10 OI from contract format * @param contractOi Contract OpenInterest struct from BorrowingFeesStorage * @returns Normalized OI with long/short values */ export declare const convertBeforeV10Collateral: (contractOi: IBorrowingFees.OpenInterestStructOutput) => { long: number; short: number; }; /** * @dev Converts post-v10 collateral OI from contract format * @param contractOi Contract PairOiCollateral struct * @param precision Collateral precision for conversion * @returns Normalized OI with long/short values */ export declare const convertCollateralOi: (contractOi: IPriceImpact.PairOiCollateralStructOutput, precision: number) => { long: number; short: number; }; /** * @dev Converts post-v10 token OI from contract format * @param contractOi Contract PairOiToken struct * @returns Normalized OI with long/short values (1e18 precision) */ export declare const convertTokenOi: (contractOi: IPriceImpact.PairOiTokenStructOutput) => { long: number; short: number; }; /** * @dev Converts all OI data for a pair into unified structure * @param beforeV10 Pre-v10 OI from BorrowingFeesStorage * @param afterV10Collateral Post-v10 collateral OI from PriceImpactStorage * @param afterV10Token Post-v10 token OI from PriceImpactStorage * @param maxOi Maximum OI allowed (from BorrowingFeesStorage) * @param collateralPrecision Precision for collateral conversions * @returns Unified PairOi structure */ export declare const convertPairOi: (beforeV10: IBorrowingFees.OpenInterestStructOutput, afterV10Collateral: IPriceImpact.PairOiCollateralStructOutput, afterV10Token: IPriceImpact.PairOiTokenStructOutput, collateralPrecision: number) => UnifiedPairOi; /** * @dev Batch converter for multiple pairs * @param pairs Array of OI data for multiple pairs * @param collateralPrecision Precision for collateral conversions * @returns Array of unified PairOi structures */ export declare const convertPairOiArray: (pairs: Array<{ beforeV10: IBorrowingFees.OpenInterestStructOutput; collateral: IPriceImpact.PairOiCollateralStructOutput; token: IPriceImpact.PairOiTokenStructOutput; }>, collateralPrecision: number) => UnifiedPairOi[]; /** * @dev Computes derived OI values from unified structure * @param pairOi Unified pair OI data * @param tokenPriceCollateral Current token price in collateral units * @returns Computed values including total OI and skew */ export declare const computeOiValues: (pairOi: UnifiedPairOi, tokenPriceCollateral: number) => ComputedOi;