/**
 * 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 Address, type Codec, type Decoder, type Encoder, type IAccountMeta, type IAccountSignerMeta, type IInstruction, type IInstructionWithAccounts, type IInstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/web3-v2.js';
import { SVM_SPOKE_PROGRAM_ADDRESS } from '../programs';
export declare const CLAIM_RELAYER_REFUND_DISCRIMINATOR: Uint8Array;
export declare function getClaimRelayerRefundDiscriminatorBytes(): ReadonlyUint8Array;
export type ClaimRelayerRefundInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountSigner extends string | IAccountMeta<string> = string, TAccountInitializer extends string | IAccountMeta<string> = string, TAccountState extends string | IAccountMeta<string> = string, TAccountVault extends string | IAccountMeta<string> = string, TAccountMint extends string | IAccountMeta<string> = string, TAccountRefundAddress extends string | IAccountMeta<string> = string, TAccountTokenAccount extends string | IAccountMeta<string> = string, TAccountClaimAccount extends string | IAccountMeta<string> = string, TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TAccountEventAuthority extends string | IAccountMeta<string> = string, TAccountProgram extends string | IAccountMeta<string> = string, TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountSigner extends string ? ReadonlySignerAccount<TAccountSigner> & IAccountSignerMeta<TAccountSigner> : TAccountSigner,
    TAccountInitializer extends string ? WritableAccount<TAccountInitializer> : TAccountInitializer,
    TAccountState extends string ? ReadonlyAccount<TAccountState> : TAccountState,
    TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
    TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint,
    TAccountRefundAddress extends string ? ReadonlyAccount<TAccountRefundAddress> : TAccountRefundAddress,
    TAccountTokenAccount extends string ? WritableAccount<TAccountTokenAccount> : TAccountTokenAccount,
    TAccountClaimAccount extends string ? WritableAccount<TAccountClaimAccount> : TAccountClaimAccount,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,
    TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,
    ...TRemainingAccounts
]>;
export type ClaimRelayerRefundInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type ClaimRelayerRefundInstructionDataArgs = {};
export declare function getClaimRelayerRefundInstructionDataEncoder(): Encoder<ClaimRelayerRefundInstructionDataArgs>;
export declare function getClaimRelayerRefundInstructionDataDecoder(): Decoder<ClaimRelayerRefundInstructionData>;
export declare function getClaimRelayerRefundInstructionDataCodec(): Codec<ClaimRelayerRefundInstructionDataArgs, ClaimRelayerRefundInstructionData>;
export type ClaimRelayerRefundAsyncInput<TAccountSigner extends string = string, TAccountInitializer extends string = string, TAccountState extends string = string, TAccountVault extends string = string, TAccountMint extends string = string, TAccountRefundAddress extends string = string, TAccountTokenAccount extends string = string, TAccountClaimAccount extends string = string, TAccountTokenProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    initializer: Address<TAccountInitializer>;
    state: Address<TAccountState>;
    vault?: Address<TAccountVault>;
    mint: Address<TAccountMint>;
    refundAddress: Address<TAccountRefundAddress>;
    tokenAccount: Address<TAccountTokenAccount>;
    claimAccount?: Address<TAccountClaimAccount>;
    tokenProgram?: Address<TAccountTokenProgram>;
    eventAuthority?: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
};
export declare function getClaimRelayerRefundInstructionAsync<TAccountSigner extends string, TAccountInitializer extends string, TAccountState extends string, TAccountVault extends string, TAccountMint extends string, TAccountRefundAddress extends string, TAccountTokenAccount extends string, TAccountClaimAccount extends string, TAccountTokenProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: ClaimRelayerRefundAsyncInput<TAccountSigner, TAccountInitializer, TAccountState, TAccountVault, TAccountMint, TAccountRefundAddress, TAccountTokenAccount, TAccountClaimAccount, TAccountTokenProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<ClaimRelayerRefundInstruction<TProgramAddress, TAccountSigner, TAccountInitializer, TAccountState, TAccountVault, TAccountMint, TAccountRefundAddress, TAccountTokenAccount, TAccountClaimAccount, TAccountTokenProgram, TAccountEventAuthority, TAccountProgram>>;
export type ClaimRelayerRefundInput<TAccountSigner extends string = string, TAccountInitializer extends string = string, TAccountState extends string = string, TAccountVault extends string = string, TAccountMint extends string = string, TAccountRefundAddress extends string = string, TAccountTokenAccount extends string = string, TAccountClaimAccount extends string = string, TAccountTokenProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    initializer: Address<TAccountInitializer>;
    state: Address<TAccountState>;
    vault: Address<TAccountVault>;
    mint: Address<TAccountMint>;
    refundAddress: Address<TAccountRefundAddress>;
    tokenAccount: Address<TAccountTokenAccount>;
    claimAccount: Address<TAccountClaimAccount>;
    tokenProgram?: Address<TAccountTokenProgram>;
    eventAuthority: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
};
export declare function getClaimRelayerRefundInstruction<TAccountSigner extends string, TAccountInitializer extends string, TAccountState extends string, TAccountVault extends string, TAccountMint extends string, TAccountRefundAddress extends string, TAccountTokenAccount extends string, TAccountClaimAccount extends string, TAccountTokenProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: ClaimRelayerRefundInput<TAccountSigner, TAccountInitializer, TAccountState, TAccountVault, TAccountMint, TAccountRefundAddress, TAccountTokenAccount, TAccountClaimAccount, TAccountTokenProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): ClaimRelayerRefundInstruction<TProgramAddress, TAccountSigner, TAccountInitializer, TAccountState, TAccountVault, TAccountMint, TAccountRefundAddress, TAccountTokenAccount, TAccountClaimAccount, TAccountTokenProgram, TAccountEventAuthority, TAccountProgram>;
export type ParsedClaimRelayerRefundInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        signer: TAccountMetas[0];
        initializer: TAccountMetas[1];
        state: TAccountMetas[2];
        vault: TAccountMetas[3];
        mint: TAccountMetas[4];
        refundAddress: TAccountMetas[5];
        tokenAccount: TAccountMetas[6];
        claimAccount: TAccountMetas[7];
        tokenProgram: TAccountMetas[8];
        eventAuthority: TAccountMetas[9];
        program: TAccountMetas[10];
    };
    data: ClaimRelayerRefundInstructionData;
};
export declare function parseClaimRelayerRefundInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedClaimRelayerRefundInstruction<TProgram, TAccountMetas>;
