import { TransactionInstruction, PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
export interface DecreaseLiquidityArgs {
    liquidity: BN;
    amount0Min: BN;
    amount1Min: BN;
}
export interface DecreaseLiquidityAccounts {
    /** 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;
}
export declare const layout: any;
/**
 * Decreases liquidity with a exist position
 *
 * # 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 decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: DecreaseLiquidityAccounts): TransactionInstruction;
