import { TransactionInstruction, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
export interface DepositAndInvestArgs {
    tokenMaxA: BN;
    tokenMaxB: BN;
}
export interface DepositAndInvestAccounts {
    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 depositAndInvest(args: DepositAndInvestArgs, accounts: DepositAndInvestAccounts): TransactionInstruction;
