import { Address, IInstruction, TransactionSigner } from "@solana/kit";
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: Address;
    whirlpoolTwo: Address;
    tokenMintInput: Address;
    tokenMintIntermediate: Address;
    tokenMintOutput: Address;
    tokenProgramInput: Address;
    tokenProgramIntermediate: Address;
    tokenProgramOutput: Address;
    tokenOwnerAccountInput: Address;
    tokenVaultOneInput: Address;
    tokenVaultOneIntermediate: Address;
    tokenVaultTwoIntermediate: Address;
    tokenVaultTwoOutput: Address;
    tokenOwnerAccountOutput: Address;
    tokenAuthority: TransactionSigner;
    tickArrayOne0: Address;
    tickArrayOne1: Address;
    tickArrayOne2: Address;
    tickArrayTwo0: Address;
    tickArrayTwo1: Address;
    tickArrayTwo2: Address;
    oracleOne: Address;
    oracleTwo: Address;
    memoProgram: Address;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function twoHopSwapV2(args: TwoHopSwapV2Args, accounts: TwoHopSwapV2Accounts, programAddress?: Address): IInstruction;
//# sourceMappingURL=twoHopSwapV2.d.ts.map