///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type BaseFee = {
cliffFeeNumerator: BigNumber;
feeSchedulerMode: number;
padding0: number[];
numberOfPeriod: number;
periodFrequency: BigNumber;
reductionFactor: BigNumber;
padding1: BigNumber;
};
export declare const baseFeeStruct: BeetStruct>;
export type DynamicFee = {
initialized: number;
padding: number[];
maxVolatilityAccumulator: number;
variableFeeControl: number;
binStep: number;
filterPeriod: number;
decayPeriod: number;
reductionFactor: number;
lastUpdateTimestamp: BigNumber;
binStepU128: BigNumber;
sqrtPriceReference: BigNumber;
volatilityAccumulator: BigNumber;
volatilityReference: BigNumber;
};
export declare const dynamicFeeStruct: BeetStruct>;
export type PoolFees = {
baseFee: BaseFee;
protocolFeePercent: number;
partnerFeePercent: number;
referralFeePercent: number;
padding0: number[];
dynamicFee: DynamicFee;
padding1: BigNumber;
padding2: BigNumber;
};
export declare const poolFeesStruct: BeetStruct>;
export type PoolMetrics = {
totalLpAFee: BigNumber;
totalLpBFee: BigNumber;
totalProtocolAFee: BigNumber;
totalProtocolBFee: BigNumber;
totalPartnerAFee: BigNumber;
totalPartnerBFee: BigNumber;
totalPosition: BigNumber;
padding: BigNumber;
};
export declare const poolMetricsStruct: BeetStruct>;
export type RewardInfo = {
initialized: number;
rewardTokenFlag: number;
padding0: number[];
padding1: number[];
mint: PublicKey;
vault: PublicKey;
funder: PublicKey;
rewardDuration: BigNumber;
rewardDurationEnd: BigNumber;
rewardRate: BigNumber;
rewardPerTokenStored: number[];
lastUpdateTime: BigNumber;
cumulativeSecondsWithEmptyLiquidityReward: BigNumber;
};
export declare const rewardInfoStruct: BeetStruct>;
export type Pool = {
discriminator: number[];
poolFees: PoolFees;
tokenAMint: PublicKey;
tokenBMint: PublicKey;
tokenAVault: PublicKey;
tokenBVault: PublicKey;
whitelistedVault: PublicKey;
partner: PublicKey;
liquidity: BigNumber;
tokenAReserve: BigNumber;
tokenBReserve: BigNumber;
protocolAFee: BigNumber;
protocolBFee: BigNumber;
partnerAFee: BigNumber;
partnerBFee: BigNumber;
sqrtMinPrice: BigNumber;
sqrtMaxPrice: BigNumber;
sqrtPrice: BigNumber;
activationPoint: BigNumber;
activationType: number;
poolStatus: number;
tokenAFlag: number;
tokenBFlag: number;
collectFeeMode: number;
poolType: number;
padding0: number[];
feeAPerLiquidity: number[];
feeBPerLiquidity: number[];
permanentLockLiquidity: BigNumber;
metrics: PoolMetrics;
padding1: BigNumber[];
rewardInfos: RewardInfo[];
};
export declare const poolStruct: FixableBeetStruct>;
export type PositionMetrics = {
totalClaimedAFee: BigNumber;
totalClaimedBFee: BigNumber;
};
export declare const positionMetricsStruct: BeetStruct>;
export type UserRewardInfo = {
rewardPerTokenCheckpoint: number[];
rewardPendings: BigNumber;
totalClaimedRewards: BigNumber;
};
export declare const userRewardInfoStruct: BeetStruct>;
export type Position = {
discriminator: number[];
pool: PublicKey;
nftMint: PublicKey;
feeAPerTokenCheckpoint: number[];
feeBPerTokenCheckpoint: number[];
feeAPending: BigNumber;
feeBPending: BigNumber;
unlockedLiquidity: BigNumber;
vestedLiquidity: BigNumber;
permanentLockedLiquidity: BigNumber;
metrics: PositionMetrics;
rewardInfos: UserRewardInfo[];
padding: BigNumber[];
};
export declare const positionStruct: FixableBeetStruct>;