/**
 * 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 ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS } from '../programs/index.js';
export declare const SET_CLAWBACK_RECEIVER_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getSetClawbackReceiverDiscriminatorBytes(): ReadonlyUint8Array;
export type SetClawbackReceiverInstruction<TProgram extends string = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS, TAccountDistributor extends string | AccountMeta<string> = string, TAccountNewClawbackAccount extends string | AccountMeta<string> = string, TAccountAdmin extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
    TAccountDistributor extends string ? WritableAccount<TAccountDistributor> : TAccountDistributor,
    TAccountNewClawbackAccount extends string ? ReadonlyAccount<TAccountNewClawbackAccount> : TAccountNewClawbackAccount,
    TAccountAdmin extends string ? WritableSignerAccount<TAccountAdmin> & AccountSignerMeta<TAccountAdmin> : TAccountAdmin,
    ...TRemainingAccounts
]>;
export type SetClawbackReceiverInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type SetClawbackReceiverInstructionDataArgs = {};
export declare function getSetClawbackReceiverInstructionDataEncoder(): FixedSizeEncoder<SetClawbackReceiverInstructionDataArgs>;
export declare function getSetClawbackReceiverInstructionDataDecoder(): FixedSizeDecoder<SetClawbackReceiverInstructionData>;
export declare function getSetClawbackReceiverInstructionDataCodec(): FixedSizeCodec<SetClawbackReceiverInstructionDataArgs, SetClawbackReceiverInstructionData>;
export type SetClawbackReceiverInput<TAccountDistributor extends string = string, TAccountNewClawbackAccount extends string = string, TAccountAdmin extends string = string> = {
    /** The [MerkleDistributor]. */
    distributor: Address<TAccountDistributor>;
    /** New clawback account */
    newClawbackAccount: Address<TAccountNewClawbackAccount>;
    /** Admin signer */
    admin: TransactionSigner<TAccountAdmin>;
};
export declare function getSetClawbackReceiverInstruction<TAccountDistributor extends string, TAccountNewClawbackAccount extends string, TAccountAdmin extends string, TProgramAddress extends Address = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS>(input: SetClawbackReceiverInput<TAccountDistributor, TAccountNewClawbackAccount, TAccountAdmin>, config?: {
    programAddress?: TProgramAddress;
}): SetClawbackReceiverInstruction<TProgramAddress, TAccountDistributor, TAccountNewClawbackAccount, TAccountAdmin>;
export type ParsedSetClawbackReceiverInstruction<TProgram extends string = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        /** The [MerkleDistributor]. */
        distributor: TAccountMetas[0];
        /** New clawback account */
        newClawbackAccount: TAccountMetas[1];
        /** Admin signer */
        admin: TAccountMetas[2];
    };
    data: SetClawbackReceiverInstructionData;
};
export declare function parseSetClawbackReceiverInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedSetClawbackReceiverInstruction<TProgram, TAccountMetas>;
