///
///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import BigNumber from 'bignumber.js';
import { PublicKey } from '@solana/web3.js';
export type VaultBumps = {
vaultBump: number;
tokenVaultBump: number;
};
export declare const vaultBumpsStruct: BeetStruct>;
export type LockedProfitTracker = {
lastUpdatedLockedProfit: BigNumber;
lastReport: BigNumber;
lockedProfitDegradation: BigNumber;
};
export declare const lockedProfitTrackerStruct: BeetStruct>;
export type Vault = {
buffer: Buffer;
enabled: number;
bumps: VaultBumps;
total_amount: BigNumber;
token_vault: PublicKey;
fee_vault: PublicKey;
token_mint: PublicKey;
lp_mint: PublicKey;
strategies: PublicKey[];
base: PublicKey;
admin: PublicKey;
operator: PublicKey;
locked_profit_tracker: LockedProfitTracker;
};
export declare const vaultStruct: BeetStruct>;
export type Padding = {
padding0: number[];
padding: BigNumber[];
};
export declare const paddingStruct: FixableBeetStruct>;
export type Padding2 = {
padding0: number[];
padding1: BigNumber[];
padding2: BigNumber[];
};
export declare const padding2Struct: FixableBeetStruct>;
export declare enum DepegType {
None = 0,
Marinade = 1,
Lido = 2,
SplStake = 3
}
export type Depeg = {
baseVirtualPrice: BigNumber;
baseCacheUpdated: BigNumber;
depegType: DepegType;
};
export declare const depegStruct: BeetStruct>;
export type TokenMultiplier = {
tokenAMultiplier: BigNumber;
tokenBMultiplier: BigNumber;
precisionFactor: number;
};
export declare const TokenMultiplierStruct: BeetStruct>;
export type StableParams = {
amp: BigNumber;
token_multiplier: TokenMultiplier;
depeg: Depeg;
last_amp_updated_timestamp: BigNumber;
};
export declare const stableParamsStruct: BeetStruct>;
export declare enum CurveType {
ConstantProduct = 0,
Stable = 1
}
export declare enum PoolType {
Permissioned = 0,
Permissionless = 1
}
export type PoolFees = {
tradeFeeNumerator: BigNumber;
tradeFeeDenominator: BigNumber;
ownerTradeFeeNumerator: BigNumber;
ownerTradeFeeDenominator: BigNumber;
};
export declare const poolFeesStruct: BeetStruct>;
export type Boostrapping = {
activationPoint: BigNumber;
whitelistedVault: PublicKey;
poolCreator: PublicKey;
activationType: number;
};
export declare const boostrappingStruct: BeetStruct>;
export type PartnerInfo = {
feeNumerator: BigNumber;
partnerAuthority: PublicKey;
pendingFeeA: BigNumber;
pendingFeeB: BigNumber;
};
export declare const partnerInfoStruct: BeetStruct>;
export type PoolState = {
accountDiscriminator: number[];
lpMint: PublicKey;
tokenAMint: PublicKey;
tokenBMint: PublicKey;
aVault: PublicKey;
bVault: PublicKey;
aVaultLp: PublicKey;
bVaultLp: PublicKey;
aVaultLpBump: number;
enabled: boolean;
};
export declare const poolStateStruct: BeetStruct>;
export type Farm = {
buffer: Buffer;
authority: PublicKey;
paused: boolean;
stakingMint: PublicKey;
stakingVault: PublicKey;
rewardAMint: PublicKey;
rewardAVault: PublicKey;
rewardBMint: PublicKey;
rewardBVault: PublicKey;
rewardDuration: BigNumber;
rewardDurationEnd: BigNumber;
lastUpdateTime: BigNumber;
rewardARate: BigNumber;
rewardBRate: BigNumber;
rewardAPerTokenStored: BigNumber;
rewardBPerTokenStored: BigNumber;
userStakeCount: number;
funders: PublicKey[];
rewardARateU128: BigNumber;
rewardBRateU128: BigNumber;
poolBump: number;
totalStaked: BigNumber;
};
export declare const farmStruct: BeetStruct>;
export type FarmAccount = {
buffer: Buffer;
pool: PublicKey;
owner: PublicKey;
rewardAPerTokenComplete: BigNumber;
rewardBPerTokenComplete: BigNumber;
rewardAPerTokenPending: BigNumber;
rewardBPerTokenPending: BigNumber;
balanceStaked: BigNumber;
nonce: number;
};
export declare const farmAccountStruct: BeetStruct>;
export type Escrow = {
buffer: Buffer;
dlmmVault: PublicKey;
owner: PublicKey;
totalDeposit: BigNumber;
claimedToken: BigNumber;
lastClaimedTs: BigNumber;
refunded: number;
padding1: number[];
padding: BigNumber[];
};
export declare const escrowStruct: BeetStruct>;