import { TransactionInstruction, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
export interface SingleTokenDepositAndInvestWithMinArgs {
    tokenAMinPostDepositBalance: BN;
    tokenBMinPostDepositBalance: BN;
}
export interface SingleTokenDepositAndInvestWithMinAccounts {
    user: PublicKey;
    strategy: PublicKey;
    globalConfig: PublicKey;
    /** check that the pool is owned either by orca or by raydium */
    pool: PublicKey;
    position: PublicKey;
    raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
    positionTokenAccount: PublicKey;
    tokenAVault: PublicKey;
    tokenBVault: PublicKey;
    poolTokenVaultA: PublicKey;
    poolTokenVaultB: PublicKey;
    tickArrayLower: PublicKey;
    tickArrayUpper: PublicKey;
    baseVaultAuthority: PublicKey;
    tokenAAta: PublicKey;
    tokenBAta: PublicKey;
    tokenAMint: PublicKey;
    tokenBMint: PublicKey;
    userSharesAta: PublicKey;
    sharesMint: PublicKey;
    sharesMintAuthority: PublicKey;
    scopePrices: PublicKey;
    tokenInfos: PublicKey;
    tokenProgram: PublicKey;
    poolProgram: PublicKey;
    instructionSysvarAccount: PublicKey;
}
export declare const layout: any;
export declare function singleTokenDepositAndInvestWithMin(args: SingleTokenDepositAndInvestWithMinArgs, accounts: SingleTokenDepositAndInvestWithMinAccounts): TransactionInstruction;
