import { TransactionInstruction, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
export interface WithdrawArgs {
    sharesAmount: BN;
}
export interface WithdrawAccounts {
    user: PublicKey;
    strategy: PublicKey;
    globalConfig: PublicKey;
    pool: PublicKey;
    position: PublicKey;
    raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
    tickArrayLower: PublicKey;
    tickArrayUpper: PublicKey;
    tokenAVault: PublicKey;
    tokenBVault: PublicKey;
    baseVaultAuthority: PublicKey;
    poolTokenVaultA: PublicKey;
    poolTokenVaultB: PublicKey;
    tokenAAta: PublicKey;
    tokenBAta: PublicKey;
    userSharesAta: PublicKey;
    sharesMint: PublicKey;
    treasuryFeeTokenAVault: PublicKey;
    treasuryFeeTokenBVault: PublicKey;
    tokenProgram: PublicKey;
    positionTokenAccount: PublicKey;
    poolProgram: PublicKey;
    instructionSysvarAccount: PublicKey;
}
export declare const layout: any;
export declare function withdraw(args: WithdrawArgs, accounts: WithdrawAccounts): TransactionInstruction;
