import { TransactionInstruction, PublicKey } from "@solana/web3.js";
export interface CollectFeesAndRewardsAccounts {
    user: PublicKey;
    strategy: PublicKey;
    globalConfig: PublicKey;
    baseVaultAuthority: PublicKey;
    pool: PublicKey;
    tickArrayLower: PublicKey;
    tickArrayUpper: PublicKey;
    position: PublicKey;
    raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
    positionTokenAccount: PublicKey;
    tokenAVault: PublicKey;
    poolTokenVaultA: PublicKey;
    tokenBVault: PublicKey;
    poolTokenVaultB: PublicKey;
    treasuryFeeTokenAVault: PublicKey;
    treasuryFeeTokenBVault: PublicKey;
    treasuryFeeVaultAuthority: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    reward0Vault: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    reward1Vault: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    reward2Vault: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault0: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault1: PublicKey;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault2: PublicKey;
    tokenAMint: PublicKey;
    tokenBMint: PublicKey;
    tokenProgram: PublicKey;
    poolProgram: PublicKey;
    instructionSysvarAccount: PublicKey;
}
export declare function collectFeesAndRewards(accounts: CollectFeesAndRewardsAccounts): TransactionInstruction;
