import { Address, IAccountMeta, IInstruction, TransactionSigner } from "@solana/kit";
import BN from "bn.js";
export interface TwoHopSwapArgs {
    amount: BN;
    otherAmountThreshold: BN;
    amountSpecifiedIsInput: boolean;
    aToBOne: boolean;
    aToBTwo: boolean;
    sqrtPriceLimitOne: BN;
    sqrtPriceLimitTwo: BN;
}
export interface TwoHopSwapAccounts {
    tokenProgram: Address;
    tokenAuthority: TransactionSigner;
    whirlpoolOne: Address;
    whirlpoolTwo: Address;
    tokenOwnerAccountOneA: Address;
    tokenVaultOneA: Address;
    tokenOwnerAccountOneB: Address;
    tokenVaultOneB: Address;
    tokenOwnerAccountTwoA: Address;
    tokenVaultTwoA: Address;
    tokenOwnerAccountTwoB: Address;
    tokenVaultTwoB: Address;
    tickArrayOne0: Address;
    tickArrayOne1: Address;
    tickArrayOne2: Address;
    tickArrayTwo0: Address;
    tickArrayTwo1: Address;
    tickArrayTwo2: Address;
    oracleOne: Address;
    oracleTwo: Address;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function twoHopSwap(args: TwoHopSwapArgs, accounts: TwoHopSwapAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=twoHopSwap.d.ts.map