/**
 * This code was AUTOGENERATED using the Codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun Codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { WHIRLPOOL_PROGRAM_ADDRESS } from '../programs';
export declare const INITIALIZE_REWARD_V2_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getInitializeRewardV2DiscriminatorBytes(): ReadonlyUint8Array;
export type InitializeRewardV2Instruction<TProgram extends string = typeof WHIRLPOOL_PROGRAM_ADDRESS, TAccountRewardAuthority extends string | AccountMeta<string> = string, TAccountFunder extends string | AccountMeta<string> = string, TAccountWhirlpool extends string | AccountMeta<string> = string, TAccountRewardMint extends string | AccountMeta<string> = string, TAccountRewardTokenBadge extends string | AccountMeta<string> = string, TAccountRewardVault extends string | AccountMeta<string> = string, TAccountRewardTokenProgram extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TAccountRent extends string | AccountMeta<string> = "SysvarRent111111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountRewardAuthority extends string ? ReadonlySignerAccount<TAccountRewardAuthority> & AccountSignerMeta<TAccountRewardAuthority> : TAccountRewardAuthority, TAccountFunder extends string ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder> : TAccountFunder, TAccountWhirlpool extends string ? WritableAccount<TAccountWhirlpool> : TAccountWhirlpool, TAccountRewardMint extends string ? ReadonlyAccount<TAccountRewardMint> : TAccountRewardMint, TAccountRewardTokenBadge extends string ? ReadonlyAccount<TAccountRewardTokenBadge> : TAccountRewardTokenBadge, TAccountRewardVault extends string ? WritableSignerAccount<TAccountRewardVault> & AccountSignerMeta<TAccountRewardVault> : TAccountRewardVault, TAccountRewardTokenProgram extends string ? ReadonlyAccount<TAccountRewardTokenProgram> : TAccountRewardTokenProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, TAccountRent extends string ? ReadonlyAccount<TAccountRent> : TAccountRent, ...TRemainingAccounts]>;
export type InitializeRewardV2InstructionData = {
    discriminator: ReadonlyUint8Array;
    rewardIndex: number;
};
export type InitializeRewardV2InstructionDataArgs = {
    rewardIndex: number;
};
export declare function getInitializeRewardV2InstructionDataEncoder(): FixedSizeEncoder<InitializeRewardV2InstructionDataArgs>;
export declare function getInitializeRewardV2InstructionDataDecoder(): FixedSizeDecoder<InitializeRewardV2InstructionData>;
export declare function getInitializeRewardV2InstructionDataCodec(): FixedSizeCodec<InitializeRewardV2InstructionDataArgs, InitializeRewardV2InstructionData>;
export type InitializeRewardV2Input<TAccountRewardAuthority extends string = string, TAccountFunder extends string = string, TAccountWhirlpool extends string = string, TAccountRewardMint extends string = string, TAccountRewardTokenBadge extends string = string, TAccountRewardVault extends string = string, TAccountRewardTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountRent extends string = string> = {
    rewardAuthority: TransactionSigner<TAccountRewardAuthority>;
    funder: TransactionSigner<TAccountFunder>;
    whirlpool: Address<TAccountWhirlpool>;
    rewardMint: Address<TAccountRewardMint>;
    rewardTokenBadge: Address<TAccountRewardTokenBadge>;
    rewardVault: TransactionSigner<TAccountRewardVault>;
    rewardTokenProgram: Address<TAccountRewardTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    rent?: Address<TAccountRent>;
    rewardIndex: InitializeRewardV2InstructionDataArgs["rewardIndex"];
};
export declare function getInitializeRewardV2Instruction<TAccountRewardAuthority extends string, TAccountFunder extends string, TAccountWhirlpool extends string, TAccountRewardMint extends string, TAccountRewardTokenBadge extends string, TAccountRewardVault extends string, TAccountRewardTokenProgram extends string, TAccountSystemProgram extends string, TAccountRent extends string, TProgramAddress extends Address = typeof WHIRLPOOL_PROGRAM_ADDRESS>(input: InitializeRewardV2Input<TAccountRewardAuthority, TAccountFunder, TAccountWhirlpool, TAccountRewardMint, TAccountRewardTokenBadge, TAccountRewardVault, TAccountRewardTokenProgram, TAccountSystemProgram, TAccountRent>, config?: {
    programAddress?: TProgramAddress;
}): InitializeRewardV2Instruction<TProgramAddress, TAccountRewardAuthority, TAccountFunder, TAccountWhirlpool, TAccountRewardMint, TAccountRewardTokenBadge, TAccountRewardVault, TAccountRewardTokenProgram, TAccountSystemProgram, TAccountRent>;
export type ParsedInitializeRewardV2Instruction<TProgram extends string = typeof WHIRLPOOL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        rewardAuthority: TAccountMetas[0];
        funder: TAccountMetas[1];
        whirlpool: TAccountMetas[2];
        rewardMint: TAccountMetas[3];
        rewardTokenBadge: TAccountMetas[4];
        rewardVault: TAccountMetas[5];
        rewardTokenProgram: TAccountMetas[6];
        systemProgram: TAccountMetas[7];
        rent: TAccountMetas[8];
    };
    data: InitializeRewardV2InstructionData;
};
export declare function parseInitializeRewardV2Instruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeRewardV2Instruction<TProgram, TAccountMetas>;
//# sourceMappingURL=initializeRewardV2.d.ts.map