import { TransactionInstruction, PublicKey } from '@solana/web3.js'; import BN from 'bn.js'; export interface DecreaseLiquidityV2Args { liquidity: BN; amount0Min: BN; amount1Min: BN; } export interface DecreaseLiquidityV2Accounts { /** The position owner or delegated authority */ nftOwner: PublicKey; /** The token account for the tokenized position */ nftAccount: PublicKey; /** Decrease liquidity for this position */ personalPosition: PublicKey; poolState: PublicKey; protocolPosition: PublicKey; /** Token_0 vault */ tokenVault0: PublicKey; /** Token_1 vault */ tokenVault1: PublicKey; /** Stores init state for the lower tick */ tickArrayLower: PublicKey; /** Stores init state for the upper tick */ tickArrayUpper: PublicKey; /** The destination token account for receive amount_0 */ recipientTokenAccount0: PublicKey; /** The destination token account for receive amount_1 */ recipientTokenAccount1: PublicKey; /** SPL program to transfer out tokens */ tokenProgram: PublicKey; /** Token program 2022 */ tokenProgram2022: PublicKey; /** memo program */ memoProgram: PublicKey; /** The mint of token vault 0 */ vault0Mint: PublicKey; /** The mint of token vault 1 */ vault1Mint: PublicKey; } export declare const layout: any; /** * Decreases liquidity with a exist position, support Token2022 * * # Arguments * * * `ctx` - The context of accounts * * `liquidity` - The amount by which liquidity will be decreased * * `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity * * `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity * */ export declare function decreaseLiquidityV2(args: DecreaseLiquidityV2Args, accounts: DecreaseLiquidityV2Accounts): TransactionInstruction;