import { Address, IAccountMeta, IInstruction, Option, TransactionSigner } from "@solana/kit";
import BN from "bn.js";
export interface SingleTokenDepositAndInvestWithMinArgs {
    tokenAMinPostDepositBalance: BN;
    tokenBMinPostDepositBalance: BN;
}
export interface SingleTokenDepositAndInvestWithMinAccounts {
    user: TransactionSigner;
    strategy: Address;
    globalConfig: Address;
    /** check that the pool is owned either by orca or by raydium */
    pool: Address;
    position: Address;
    raydiumProtocolPositionOrBaseVaultAuthority: Address;
    positionTokenAccount: Address;
    tokenAVault: Address;
    tokenBVault: Address;
    poolTokenVaultA: Address;
    poolTokenVaultB: Address;
    tickArrayLower: Address;
    tickArrayUpper: Address;
    baseVaultAuthority: Address;
    tokenAAta: Address;
    tokenBAta: Address;
    tokenAMint: Address;
    tokenBMint: Address;
    userSharesAta: Address;
    sharesMint: Address;
    sharesMintAuthority: Address;
    scopePrices: Address;
    tokenInfos: Address;
    tokenProgram: Address;
    tokenProgram2022: Address;
    tokenATokenProgram: Address;
    tokenBTokenProgram: Address;
    memoProgram: Address;
    poolProgram: Address;
    instructionSysvarAccount: Address;
    eventAuthority: Option<Address>;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function singleTokenDepositAndInvestWithMin(args: SingleTokenDepositAndInvestWithMinArgs, accounts: SingleTokenDepositAndInvestWithMinAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=singleTokenDepositAndInvestWithMin.d.ts.map