import { Address, IAccountMeta, IInstruction, TransactionSigner } from "@solana/kit";
import BN from "bn.js";
export interface OrcaSwapArgs {
    amount: BN;
    otherAmountThreshold: BN;
    sqrtPriceLimit: BN;
    amountSpecifiedIsInput: boolean;
    aToB: boolean;
}
export interface OrcaSwapAccounts {
    funder: TransactionSigner;
    tokenATokenProgram: Address;
    tokenBTokenProgram: Address;
    memoProgram: Address;
    tokenAuthority: Address;
    whirlpool: Address;
    tokenOwnerAccountA: Address;
    tokenVaultA: Address;
    tokenOwnerAccountB: Address;
    tokenVaultB: Address;
    tokenMintA: Address;
    tokenMintB: Address;
    tickArray0: Address;
    tickArray1: Address;
    tickArray2: Address;
    oracle: Address;
    whirlpoolProgram: Address;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function orcaSwap(args: OrcaSwapArgs, accounts: OrcaSwapAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=orcaSwap.d.ts.map