import { Address, IAccountMeta, IInstruction, TransactionSigner } from "@solana/kit";
import BN from "bn.js";
export interface SwapRewardsArgs {
    tokenAIn: BN;
    tokenBIn: BN;
    rewardIndex: BN;
    rewardCollateralId: BN;
    minCollateralTokenOut: BN;
}
export interface SwapRewardsAccounts {
    user: TransactionSigner;
    strategy: Address;
    globalConfig: Address;
    pool: Address;
    tokenAVault: Address;
    tokenBVault: Address;
    rewardVault: Address;
    baseVaultAuthority: Address;
    treasuryFeeTokenAVault: Address;
    treasuryFeeTokenBVault: Address;
    treasuryFeeVaultAuthority: Address;
    tokenAMint: Address;
    tokenBMint: Address;
    rewardMint: Address;
    userTokenAAta: Address;
    userTokenBAta: Address;
    userRewardTokenAccount: Address;
    scopePrices: Address;
    tokenInfos: Address;
    systemProgram: Address;
    tokenATokenProgram: Address;
    tokenBTokenProgram: Address;
    rewardTokenProgram: Address;
    instructionSysvarAccount: Address;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function swapRewards(args: SwapRewardsArgs, accounts: SwapRewardsAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=swapRewards.d.ts.map