///
///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type UserRewardInfo = {
rewardPerTokenCompletesX: BigNumber;
rewardPerTokenCompletesY: BigNumber;
rewardPendingsX: BigNumber;
rewardPendingsY: BigNumber;
};
export declare const userRewardInfoStruct: BeetStruct>;
export type FeeInfo = {
feeXPerTokenComplete: BigNumber;
feeYPerTokenComplete: BigNumber;
feeXPending: BigNumber;
feeYPending: BigNumber;
};
export declare const feeInfoStruct: BeetStruct>;
export type DLMMPosition = {
buffer: Buffer;
lbPair: PublicKey;
owner: PublicKey;
liquidityShares: BigNumber[];
rewardInfos: UserRewardInfo[];
feeInfos: FeeInfo[];
lowerBinId: number;
upperBinId: number;
lastUpdatedAt: BigNumber;
totalClaimedFeeXAmount: BigNumber;
totalClaimedFeeYAmount: BigNumber;
totalClaimedRewards: BigNumber[];
operator?: PublicKey;
lockReleasePoint?: BigNumber;
padding0?: number;
feeOwner?: PublicKey;
reserved: number[];
};
export declare const dlmmPositionV1Struct: BeetStruct>;
export declare const dlmmPositionV2Struct: BeetStruct>;
export type RewardInfo = {
mint: PublicKey;
vault: PublicKey;
funder: PublicKey;
rewardDuration: BigNumber;
rewardDurationEnd: BigNumber;
rewardRate: BigNumber;
lastUpdateTime: BigNumber;
cumulativeSecondsWithEmptyLiquidityReward: BigNumber;
};
export declare const rewardInfoStruct: BeetStruct>;
export type ProtocolFee = {
amountX: BigNumber;
amountY: BigNumber;
};
export declare const protocolFeeStruct: BeetStruct>;
export type StaticParameters = {
baseFactor: number;
filterPeriod: number;
decayPeriod: number;
reductionFactor: number;
variableFeeControl: number;
maxVolatilityAccumulator: number;
minBinId: number;
maxBinId: number;
protocolShare: number;
padding: number[];
};
export declare const staticParametersStruct: BeetStruct>;
export type VariableParameters = {
volatilityAccumulator: number;
volatilityReference: number;
indexReference: number;
padding: number[];
lastUpdateTimestamp: BigNumber;
padding1: number[];
};
export declare const variableParametersStruct: BeetStruct>;
export declare enum LbPairType {
Permissionless = 0,
Permission = 1,
CustomizablePermissionless = 2,
PermissionlessV2 = 3
}
export type LbPair = {
accountDiscriminator: number[];
parameters: StaticParameters;
vParameters: VariableParameters;
bumpSeed: number[];
binStepSeed: number[];
pairType: LbPairType;
activeId: number;
binStep: number;
status: number;
requireBaseFactorSeed: number;
baseFactorSeed: number[];
activationType: number;
padding1: number;
tokenXMint: PublicKey;
tokenYMint: PublicKey;
reserveX: PublicKey;
reserveY: PublicKey;
protocolFee: ProtocolFee;
padding2: number[];
rewardInfos: RewardInfo[];
oracle: PublicKey;
binArrayBitmap: BigNumber[];
lastUpdatedAt: BigNumber;
whitelistedWallet: number[];
preActivationSwapAddress: PublicKey;
baseKey: PublicKey;
activationPoint: BigNumber;
preActivationDuration: BigNumber;
padding3: number[];
padding4: BigNumber;
creator: PublicKey;
reserved: number[];
};
export declare const lbPairStruct: BeetStruct>;
export type Bin = {
amountX: BigNumber;
amountY: BigNumber;
price: BigNumber;
liquiditySupply: BigNumber;
rewardPerTokenXStored: BigNumber;
rewardPerTokenYStored: BigNumber;
feeAmountXPerTokenStored: BigNumber;
feeAmountYPerTokenStored: BigNumber;
amountXIn: BigNumber;
amountYIn: BigNumber;
};
export declare const binStruct: BeetStruct>;
export type BinArray = {
buffer: Buffer;
index: BigNumber;
version: number;
padding: number[];
lbPair: PublicKey;
bins: Bin[];
};
export declare const binArrayStruct: BeetStruct>;
export type DlmmVault = {
accountDiscriminator: number[];
lbPair: string;
tokenVault: string;
tokenOutVault: string;
quoteMint: string;
baseMint: string;
base: string;
owner: string;
maxCap: string;
totalDeposit: string;
totalEscrow: string;
swappedAmount: string;
boughtToken: string;
totalRefund: string;
totalClaimedToken: string;
startVestingTs: string;
endVestingTs: string;
bump: number;
padding0: number[];
padding: Buffer;
};
export declare const dlmmVaultStruct: BeetStruct>;