import { TransactionInstruction, PublicKey } from '@solana/web3.js';
import * as types from '../types';
export interface InitializeRewardArgs {
    param: types.InitializeRewardParamFields;
}
export interface InitializeRewardAccounts {
    /** The founder deposit reward token to vault */
    rewardFunder: PublicKey;
    funderTokenAccount: PublicKey;
    /** For check the reward_funder authority */
    ammConfig: PublicKey;
    /** Set reward for this pool */
    poolState: PublicKey;
    /** load info from the account to judge reward permission */
    operationState: PublicKey;
    /** Reward mint */
    rewardTokenMint: PublicKey;
    /** A pda, reward vault */
    rewardTokenVault: PublicKey;
    tokenProgram: PublicKey;
    systemProgram: PublicKey;
    rent: PublicKey;
}
export declare const layout: any;
/**
 * Initialize a reward info for a given pool and reward index
 *
 * # Arguments
 *
 * * `ctx`- The context of accounts
 * * `reward_index` - the index to reward info
 * * `open_time` - reward open timestamp
 * * `end_time` - reward end timestamp
 * * `emissions_per_second_x64` - Token reward per second are earned per unit of liquidity.
 *
 */
export declare function initializeReward(args: InitializeRewardArgs, accounts: InitializeRewardAccounts): TransactionInstruction;
