///
///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import BigNumber from 'bignumber.js';
import { PublicKey } from '@solana/web3.js';
export type PositionRewardInfo = {
growthInsideCheckpoint: BigNumber;
amountOwed: BigNumber;
};
export declare const positionRewardInfoStruct: BeetStruct>;
export type Position = {
padding: Buffer;
whirlpool: PublicKey;
positionMint: PublicKey;
liquidity: BigNumber;
tickLowerIndex: number;
tickUpperIndex: number;
feeGrowthCheckpointA: BigNumber;
feeOwedA: BigNumber;
feeGrowthCheckpointB: BigNumber;
feeOwedB: BigNumber;
rewardInfos: PositionRewardInfo[];
};
export declare const positionStruct: BeetStruct>;
export type WhirlpoolRewardInfo = {
mint: PublicKey;
vault: PublicKey;
authority: PublicKey;
emissionsPerSecondX64: BigNumber;
growthGlobalX64: BigNumber;
};
export declare const whirlpoolRewardInfoStruct: BeetStruct>;
export type Whirlpool = {
padding: Buffer;
whirlpoolsConfig: PublicKey;
whirlpoolBump: number[];
tickSpacing: number;
tickSpacingSeed: number[];
feeRate: number;
protocolFeeRate: number;
liquidity: BigNumber;
sqrtPrice: BigNumber;
tickCurrentIndex: number;
protocolFeeOwedA: BigNumber;
protocolFeeOwedB: BigNumber;
tokenMintA: PublicKey;
tokenVaultA: PublicKey;
feeGrowthGlobalA: BigNumber;
tokenMintB: PublicKey;
tokenVaultB: PublicKey;
feeGrowthGlobalB: BigNumber;
rewardLastUpdatedTimestamp: BigNumber;
rewardInfos: WhirlpoolRewardInfo[];
};
export declare const whirlpoolStruct: BeetStruct>;
export type Tick = {
initialized: boolean;
liquidityNet: BigNumber;
liquidityGross: BigNumber;
feeGrowthOutsideA: BigNumber;
feeGrowthOutsideB: BigNumber;
rewardGrowthsOutside1: BigNumber;
rewardGrowthsOutside2: BigNumber;
rewardGrowthsOutside3: BigNumber;
};
export declare const tickStruct: BeetStruct>;
export type TickArray = {
padding: Buffer;
startTickIndex: number;
ticks: Tick[];
whirlpool: PublicKey;
};
export declare const tickArrayStruct: BeetStruct>;