import { ChannelEventSource, ChannelRegistry } from "../../internal"; import { LiquidityBase, LiquidityBaseConstructorData, RangeType } from "./LiquidityBase"; import { Position } from "../position"; import Big from "big.js"; import { PerpetualProtocolConnected } from "../PerpetualProtocol"; declare type LiquidityEventName = "updated" | "updateError"; export interface EventPayloadLiquidityFeeUpdated { fee: Big; } export interface EventPayloadLiquidityAmountsUpdated { amountQuote: Big; amountBase: Big; makerPositionImpermanent: Position; } export interface LiquidityConstructorData extends LiquidityBaseConstructorData { perp: PerpetualProtocolConnected; id: string; liquidity: Big; lowerTick: number; upperTick: number; baseDebt: Big; quoteDebt: Big; } export declare class Liquidity extends LiquidityBase { private _cache; readonly _perp: PerpetualProtocolConnected; readonly id: string; readonly liquidity: Big; protected _lowerTick: number; protected _upperTick: number; private _baseDebt; private _quoteDebt; constructor({ perp, id, liquidity, lowerTick, upperTick, baseDebt, quoteDebt, ...data }: LiquidityConstructorData, _channelRegistry?: ChannelRegistry); get baseDebt(): Big; get quoteDebt(): Big; protected _getEventSourceMap(): { updated: ChannelEventSource; updateError: ChannelEventSource<"updated" | "updateError">; }; protected _handleMarketUpdate(): Promise; getPendingFee({ cache }?: { cache?: boolean | undefined; }): Promise; getLiquidityAmounts({ cache }?: { cache?: boolean | undefined; }): Promise<{ amountQuote: Big; amountBase: Big; }>; getMakerPositionImpermanent({ cache }?: { cache?: boolean | undefined; }): Promise; getLiquidityValue({ cache }?: { cache?: boolean | undefined; }): Promise; private _getMakerPositionImpermanent; static getLiquidityAmounts({ marketPrice, lowerTickPrice, upperTickPrice, liquidity, rangeType, }: { marketPrice: Big; lowerTickPrice: Big; upperTickPrice: Big; liquidity: Big; rangeType: RangeType; }): { amountQuote: Big; amountBase: Big; }; private _fetch; static same(liquidityA: Liquidity, liquidityB: Liquidity): boolean; } export {};