import { TransactionInstruction, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
import * as types from "../types";
export interface TwoHopSwapV2Args {
    amount: BN;
    otherAmountThreshold: BN;
    amountSpecifiedIsInput: boolean;
    aToBOne: boolean;
    aToBTwo: boolean;
    sqrtPriceLimitOne: BN;
    sqrtPriceLimitTwo: BN;
    remainingAccountsInfo: types.RemainingAccountsInfoFields | null;
}
export interface TwoHopSwapV2Accounts {
    whirlpoolOne: PublicKey;
    whirlpoolTwo: PublicKey;
    tokenMintInput: PublicKey;
    tokenMintIntermediate: PublicKey;
    tokenMintOutput: PublicKey;
    tokenProgramInput: PublicKey;
    tokenProgramIntermediate: PublicKey;
    tokenProgramOutput: PublicKey;
    tokenOwnerAccountInput: PublicKey;
    tokenVaultOneInput: PublicKey;
    tokenVaultOneIntermediate: PublicKey;
    tokenVaultTwoIntermediate: PublicKey;
    tokenVaultTwoOutput: PublicKey;
    tokenOwnerAccountOutput: PublicKey;
    tokenAuthority: PublicKey;
    tickArrayOne0: PublicKey;
    tickArrayOne1: PublicKey;
    tickArrayOne2: PublicKey;
    tickArrayTwo0: PublicKey;
    tickArrayTwo1: PublicKey;
    tickArrayTwo2: PublicKey;
    oracleOne: PublicKey;
    oracleTwo: PublicKey;
    memoProgram: PublicKey;
}
export declare const layout: any;
export declare function twoHopSwapV2(args: TwoHopSwapV2Args, accounts: TwoHopSwapV2Accounts, programId?: PublicKey): TransactionInstruction;
//# sourceMappingURL=twoHopSwapV2.d.ts.map