import { Address, IAccountMeta, IInstruction, Option, TransactionSigner } from "@solana/kit";
export interface CollectFeesAndRewardsAccounts {
    user: TransactionSigner;
    strategy: Address;
    globalConfig: Address;
    baseVaultAuthority: Address;
    pool: Address;
    tickArrayLower: Address;
    tickArrayUpper: Address;
    position: Address;
    raydiumProtocolPositionOrBaseVaultAuthority: Address;
    positionTokenAccount: Address;
    tokenAVault: Address;
    poolTokenVaultA: Address;
    tokenBVault: Address;
    poolTokenVaultB: Address;
    treasuryFeeTokenAVault: Address;
    treasuryFeeTokenBVault: Address;
    treasuryFeeVaultAuthority: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    reward0Vault: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    reward1Vault: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    reward2Vault: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault0: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault1: Address;
    /** If rewards are uninitialized, pass this as strategy. */
    poolRewardVault2: Address;
    tokenAMint: Address;
    tokenBMint: Address;
    tokenATokenProgram: Address;
    tokenBTokenProgram: Address;
    memoProgram: Address;
    tokenProgram: Address;
    tokenProgram2022: Address;
    poolProgram: Address;
    instructionSysvarAccount: Address;
    eventAuthority: Option<Address>;
}
export declare function collectFeesAndRewards(accounts: CollectFeesAndRewardsAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=collectFeesAndRewards.d.ts.map