import BN from 'bn.js'; import { PerpMarket, PerpPosition } from '../struct'; import { OraclePriceData, PositionDirection } from './types'; export declare function calculateBaseAssetValue(market: PerpMarket, userPosition: PerpPosition, oraclePriceData: OraclePriceData, useSpread?: boolean, skipUpdate?: boolean): BN; /** * calculatePositionPNL * = BaseAssetAmount * (Avg Exit Price - Avg Entry Price) * @param market * @param PerpPosition * @param withFunding (adds unrealized funding payment pnl to result) * @param oraclePriceData * @returns BaseAssetAmount : Precision QUOTE_PRECISION */ export declare function calculatePositionPNL(market: PerpMarket, perpPosition: PerpPosition, oraclePriceData: OraclePriceData, withFunding?: boolean): BN; /** * * @param market * @param PerpPosition * @returns // QUOTE_PRECISION */ export declare function calculatePositionFundingPNL(market: PerpMarket, perpPosition: PerpPosition): BN; export declare function positionIsAvailable(position: PerpPosition): boolean; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^6) */ export declare function calculateBreakEvenPrice(userPosition: PerpPosition): BN; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^6) */ export declare function calculateEntryPrice(userPosition: PerpPosition): BN; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^10) */ export declare function calculateCostBasis(userPosition: PerpPosition, includeSettledPnl?: boolean): BN; export declare function findDirectionToClose(userPosition: PerpPosition): PositionDirection; export declare function positionCurrentDirection(userPosition: PerpPosition): PositionDirection; export declare function isEmptyPosition(userPosition: PerpPosition): boolean; export declare function hasOpenOrders(position: PerpPosition): boolean;