///
import { PublicKey, Connection } from "@solana/web3.js";
import BN from "bn.js";
import * as types from "../types";
export interface WhirlpoolStrategyFields {
adminAuthority: PublicKey;
globalConfig: PublicKey;
baseVaultAuthority: PublicKey;
baseVaultAuthorityBump: BN;
pool: PublicKey;
poolTokenVaultA: PublicKey;
poolTokenVaultB: PublicKey;
tickArrayLower: PublicKey;
tickArrayUpper: PublicKey;
position: PublicKey;
positionMint: PublicKey;
positionMetadata: PublicKey;
positionTokenAccount: PublicKey;
tokenAVault: PublicKey;
tokenBVault: PublicKey;
tokenAVaultAuthority: PublicKey;
tokenBVaultAuthority: PublicKey;
tokenAVaultAuthorityBump: BN;
tokenBVaultAuthorityBump: BN;
tokenAMint: PublicKey;
tokenBMint: PublicKey;
tokenAMintDecimals: BN;
tokenBMintDecimals: BN;
tokenAAmounts: BN;
tokenBAmounts: BN;
tokenACollateralId: BN;
tokenBCollateralId: BN;
scopePrices: PublicKey;
scopeProgram: PublicKey;
sharesMint: PublicKey;
sharesMintDecimals: BN;
sharesMintAuthority: PublicKey;
sharesMintAuthorityBump: BN;
sharesIssued: BN;
status: BN;
reward0Amount: BN;
reward0Vault: PublicKey;
reward0CollateralId: BN;
reward0Decimals: BN;
reward1Amount: BN;
reward1Vault: PublicKey;
reward1CollateralId: BN;
reward1Decimals: BN;
reward2Amount: BN;
reward2Vault: PublicKey;
reward2CollateralId: BN;
reward2Decimals: BN;
depositCapUsd: BN;
feesACumulative: BN;
feesBCumulative: BN;
reward0AmountCumulative: BN;
reward1AmountCumulative: BN;
reward2AmountCumulative: BN;
depositCapUsdPerIxn: BN;
withdrawalCapA: types.WithdrawalCapsFields;
withdrawalCapB: types.WithdrawalCapsFields;
maxPriceDeviationBps: BN;
swapVaultMaxSlippageBps: number;
swapVaultMaxSlippageFromReferenceBps: number;
strategyType: BN;
padding0: BN;
withdrawFee: BN;
feesFee: BN;
reward0Fee: BN;
reward1Fee: BN;
reward2Fee: BN;
positionTimestamp: BN;
kaminoRewards: Array;
strategyDex: BN;
raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
allowDepositWithoutInvest: BN;
raydiumPoolConfigOrBaseVaultAuthority: PublicKey;
depositBlocked: number;
creationStatus: number;
investBlocked: number;
/** share_calculation_method can be either DOLAR_BASED=0 or PROPORTION_BASED=1 */
shareCalculationMethod: number;
withdrawBlocked: number;
reservedFlag2: number;
localAdminBlocked: number;
flashVaultSwapAllowed: number;
referenceSwapPriceA: types.PriceFields;
referenceSwapPriceB: types.PriceFields;
isCommunity: number;
rebalanceType: number;
padding1: Array;
rebalanceRaw: types.RebalanceRawFields;
padding2: Array;
tokenAFeesFromRewardsCumulative: BN;
tokenBFeesFromRewardsCumulative: BN;
strategyLookupTable: PublicKey;
lastSwapUnevenStepTimestamp: BN;
padding3: BN;
padding4: Array;
padding5: Array;
padding6: Array;
padding7: Array;
}
export interface WhirlpoolStrategyJSON {
adminAuthority: string;
globalConfig: string;
baseVaultAuthority: string;
baseVaultAuthorityBump: string;
pool: string;
poolTokenVaultA: string;
poolTokenVaultB: string;
tickArrayLower: string;
tickArrayUpper: string;
position: string;
positionMint: string;
positionMetadata: string;
positionTokenAccount: string;
tokenAVault: string;
tokenBVault: string;
tokenAVaultAuthority: string;
tokenBVaultAuthority: string;
tokenAVaultAuthorityBump: string;
tokenBVaultAuthorityBump: string;
tokenAMint: string;
tokenBMint: string;
tokenAMintDecimals: string;
tokenBMintDecimals: string;
tokenAAmounts: string;
tokenBAmounts: string;
tokenACollateralId: string;
tokenBCollateralId: string;
scopePrices: string;
scopeProgram: string;
sharesMint: string;
sharesMintDecimals: string;
sharesMintAuthority: string;
sharesMintAuthorityBump: string;
sharesIssued: string;
status: string;
reward0Amount: string;
reward0Vault: string;
reward0CollateralId: string;
reward0Decimals: string;
reward1Amount: string;
reward1Vault: string;
reward1CollateralId: string;
reward1Decimals: string;
reward2Amount: string;
reward2Vault: string;
reward2CollateralId: string;
reward2Decimals: string;
depositCapUsd: string;
feesACumulative: string;
feesBCumulative: string;
reward0AmountCumulative: string;
reward1AmountCumulative: string;
reward2AmountCumulative: string;
depositCapUsdPerIxn: string;
withdrawalCapA: types.WithdrawalCapsJSON;
withdrawalCapB: types.WithdrawalCapsJSON;
maxPriceDeviationBps: string;
swapVaultMaxSlippageBps: number;
swapVaultMaxSlippageFromReferenceBps: number;
strategyType: string;
padding0: string;
withdrawFee: string;
feesFee: string;
reward0Fee: string;
reward1Fee: string;
reward2Fee: string;
positionTimestamp: string;
kaminoRewards: Array;
strategyDex: string;
raydiumProtocolPositionOrBaseVaultAuthority: string;
allowDepositWithoutInvest: string;
raydiumPoolConfigOrBaseVaultAuthority: string;
depositBlocked: number;
creationStatus: number;
investBlocked: number;
/** share_calculation_method can be either DOLAR_BASED=0 or PROPORTION_BASED=1 */
shareCalculationMethod: number;
withdrawBlocked: number;
reservedFlag2: number;
localAdminBlocked: number;
flashVaultSwapAllowed: number;
referenceSwapPriceA: types.PriceJSON;
referenceSwapPriceB: types.PriceJSON;
isCommunity: number;
rebalanceType: number;
padding1: Array;
rebalanceRaw: types.RebalanceRawJSON;
padding2: Array;
tokenAFeesFromRewardsCumulative: string;
tokenBFeesFromRewardsCumulative: string;
strategyLookupTable: string;
lastSwapUnevenStepTimestamp: string;
padding3: string;
padding4: Array;
padding5: Array;
padding6: Array;
padding7: Array;
}
export declare class WhirlpoolStrategy {
readonly adminAuthority: PublicKey;
readonly globalConfig: PublicKey;
readonly baseVaultAuthority: PublicKey;
readonly baseVaultAuthorityBump: BN;
readonly pool: PublicKey;
readonly poolTokenVaultA: PublicKey;
readonly poolTokenVaultB: PublicKey;
readonly tickArrayLower: PublicKey;
readonly tickArrayUpper: PublicKey;
readonly position: PublicKey;
readonly positionMint: PublicKey;
readonly positionMetadata: PublicKey;
readonly positionTokenAccount: PublicKey;
readonly tokenAVault: PublicKey;
readonly tokenBVault: PublicKey;
readonly tokenAVaultAuthority: PublicKey;
readonly tokenBVaultAuthority: PublicKey;
readonly tokenAVaultAuthorityBump: BN;
readonly tokenBVaultAuthorityBump: BN;
readonly tokenAMint: PublicKey;
readonly tokenBMint: PublicKey;
readonly tokenAMintDecimals: BN;
readonly tokenBMintDecimals: BN;
readonly tokenAAmounts: BN;
readonly tokenBAmounts: BN;
readonly tokenACollateralId: BN;
readonly tokenBCollateralId: BN;
readonly scopePrices: PublicKey;
readonly scopeProgram: PublicKey;
readonly sharesMint: PublicKey;
readonly sharesMintDecimals: BN;
readonly sharesMintAuthority: PublicKey;
readonly sharesMintAuthorityBump: BN;
readonly sharesIssued: BN;
readonly status: BN;
readonly reward0Amount: BN;
readonly reward0Vault: PublicKey;
readonly reward0CollateralId: BN;
readonly reward0Decimals: BN;
readonly reward1Amount: BN;
readonly reward1Vault: PublicKey;
readonly reward1CollateralId: BN;
readonly reward1Decimals: BN;
readonly reward2Amount: BN;
readonly reward2Vault: PublicKey;
readonly reward2CollateralId: BN;
readonly reward2Decimals: BN;
readonly depositCapUsd: BN;
readonly feesACumulative: BN;
readonly feesBCumulative: BN;
readonly reward0AmountCumulative: BN;
readonly reward1AmountCumulative: BN;
readonly reward2AmountCumulative: BN;
readonly depositCapUsdPerIxn: BN;
readonly withdrawalCapA: types.WithdrawalCaps;
readonly withdrawalCapB: types.WithdrawalCaps;
readonly maxPriceDeviationBps: BN;
readonly swapVaultMaxSlippageBps: number;
readonly swapVaultMaxSlippageFromReferenceBps: number;
readonly strategyType: BN;
readonly padding0: BN;
readonly withdrawFee: BN;
readonly feesFee: BN;
readonly reward0Fee: BN;
readonly reward1Fee: BN;
readonly reward2Fee: BN;
readonly positionTimestamp: BN;
readonly kaminoRewards: Array;
readonly strategyDex: BN;
readonly raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
readonly allowDepositWithoutInvest: BN;
readonly raydiumPoolConfigOrBaseVaultAuthority: PublicKey;
readonly depositBlocked: number;
readonly creationStatus: number;
readonly investBlocked: number;
/** share_calculation_method can be either DOLAR_BASED=0 or PROPORTION_BASED=1 */
readonly shareCalculationMethod: number;
readonly withdrawBlocked: number;
readonly reservedFlag2: number;
readonly localAdminBlocked: number;
readonly flashVaultSwapAllowed: number;
readonly referenceSwapPriceA: types.Price;
readonly referenceSwapPriceB: types.Price;
readonly isCommunity: number;
readonly rebalanceType: number;
readonly padding1: Array;
readonly rebalanceRaw: types.RebalanceRaw;
readonly padding2: Array;
readonly tokenAFeesFromRewardsCumulative: BN;
readonly tokenBFeesFromRewardsCumulative: BN;
readonly strategyLookupTable: PublicKey;
readonly lastSwapUnevenStepTimestamp: BN;
readonly padding3: BN;
readonly padding4: Array;
readonly padding5: Array;
readonly padding6: Array;
readonly padding7: Array;
static readonly discriminator: Buffer;
static readonly layout: any;
constructor(fields: WhirlpoolStrategyFields);
static fetch(c: Connection, address: PublicKey): Promise;
static fetchMultiple(c: Connection, addresses: PublicKey[]): Promise>;
static decode(data: Buffer): WhirlpoolStrategy;
toJSON(): WhirlpoolStrategyJSON;
static fromJSON(obj: WhirlpoolStrategyJSON): WhirlpoolStrategy;
}