/**
 * 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 ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/web3-v2.js';
import { SVM_SPOKE_PROGRAM_ADDRESS } from '../programs';
export declare const EXECUTE_RELAYER_REFUND_LEAF_DISCRIMINATOR: Uint8Array;
export declare function getExecuteRelayerRefundLeafDiscriminatorBytes(): ReadonlyUint8Array;
export type ExecuteRelayerRefundLeafInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountSigner extends string | IAccountMeta<string> = string, TAccountInstructionParams extends string | IAccountMeta<string> = string, TAccountState extends string | IAccountMeta<string> = string, TAccountRootBundle extends string | IAccountMeta<string> = string, TAccountVault extends string | IAccountMeta<string> = string, TAccountMint extends string | IAccountMeta<string> = string, TAccountTransferLiability extends string | IAccountMeta<string> = string, TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TAccountSystemProgram extends string | IAccountMeta<string> = '11111111111111111111111111111111', 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 ? WritableSignerAccount<TAccountSigner> & IAccountSignerMeta<TAccountSigner> : TAccountSigner,
    TAccountInstructionParams extends string ? WritableAccount<TAccountInstructionParams> : TAccountInstructionParams,
    TAccountState extends string ? ReadonlyAccount<TAccountState> : TAccountState,
    TAccountRootBundle extends string ? WritableAccount<TAccountRootBundle> : TAccountRootBundle,
    TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
    TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint,
    TAccountTransferLiability extends string ? WritableAccount<TAccountTransferLiability> : TAccountTransferLiability,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
    TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority,
    TAccountProgram extends string ? ReadonlyAccount<TAccountProgram> : TAccountProgram,
    ...TRemainingAccounts
]>;
export type ExecuteRelayerRefundLeafInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type ExecuteRelayerRefundLeafInstructionDataArgs = {};
export declare function getExecuteRelayerRefundLeafInstructionDataEncoder(): Encoder<ExecuteRelayerRefundLeafInstructionDataArgs>;
export declare function getExecuteRelayerRefundLeafInstructionDataDecoder(): Decoder<ExecuteRelayerRefundLeafInstructionData>;
export declare function getExecuteRelayerRefundLeafInstructionDataCodec(): Codec<ExecuteRelayerRefundLeafInstructionDataArgs, ExecuteRelayerRefundLeafInstructionData>;
export type ExecuteRelayerRefundLeafAsyncInput<TAccountSigner extends string = string, TAccountInstructionParams extends string = string, TAccountState extends string = string, TAccountRootBundle extends string = string, TAccountVault extends string = string, TAccountMint extends string = string, TAccountTransferLiability extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    instructionParams?: Address<TAccountInstructionParams>;
    state: Address<TAccountState>;
    rootBundle: Address<TAccountRootBundle>;
    vault?: Address<TAccountVault>;
    mint: Address<TAccountMint>;
    transferLiability?: Address<TAccountTransferLiability>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    eventAuthority?: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
};
export declare function getExecuteRelayerRefundLeafInstructionAsync<TAccountSigner extends string, TAccountInstructionParams extends string, TAccountState extends string, TAccountRootBundle extends string, TAccountVault extends string, TAccountMint extends string, TAccountTransferLiability extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: ExecuteRelayerRefundLeafAsyncInput<TAccountSigner, TAccountInstructionParams, TAccountState, TAccountRootBundle, TAccountVault, TAccountMint, TAccountTransferLiability, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<ExecuteRelayerRefundLeafInstruction<TProgramAddress, TAccountSigner, TAccountInstructionParams, TAccountState, TAccountRootBundle, TAccountVault, TAccountMint, TAccountTransferLiability, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>>;
export type ExecuteRelayerRefundLeafInput<TAccountSigner extends string = string, TAccountInstructionParams extends string = string, TAccountState extends string = string, TAccountRootBundle extends string = string, TAccountVault extends string = string, TAccountMint extends string = string, TAccountTransferLiability extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountEventAuthority extends string = string, TAccountProgram extends string = string> = {
    signer: TransactionSigner<TAccountSigner>;
    instructionParams: Address<TAccountInstructionParams>;
    state: Address<TAccountState>;
    rootBundle: Address<TAccountRootBundle>;
    vault: Address<TAccountVault>;
    mint: Address<TAccountMint>;
    transferLiability: Address<TAccountTransferLiability>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    eventAuthority: Address<TAccountEventAuthority>;
    program: Address<TAccountProgram>;
};
export declare function getExecuteRelayerRefundLeafInstruction<TAccountSigner extends string, TAccountInstructionParams extends string, TAccountState extends string, TAccountRootBundle extends string, TAccountVault extends string, TAccountMint extends string, TAccountTransferLiability extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TAccountEventAuthority extends string, TAccountProgram extends string, TProgramAddress extends Address = typeof SVM_SPOKE_PROGRAM_ADDRESS>(input: ExecuteRelayerRefundLeafInput<TAccountSigner, TAccountInstructionParams, TAccountState, TAccountRootBundle, TAccountVault, TAccountMint, TAccountTransferLiability, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>, config?: {
    programAddress?: TProgramAddress;
}): ExecuteRelayerRefundLeafInstruction<TProgramAddress, TAccountSigner, TAccountInstructionParams, TAccountState, TAccountRootBundle, TAccountVault, TAccountMint, TAccountTransferLiability, TAccountTokenProgram, TAccountSystemProgram, TAccountEventAuthority, TAccountProgram>;
export type ParsedExecuteRelayerRefundLeafInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        signer: TAccountMetas[0];
        instructionParams: TAccountMetas[1];
        state: TAccountMetas[2];
        rootBundle: TAccountMetas[3];
        vault: TAccountMetas[4];
        mint: TAccountMetas[5];
        transferLiability: TAccountMetas[6];
        tokenProgram: TAccountMetas[7];
        systemProgram: TAccountMetas[8];
        eventAuthority: TAccountMetas[9];
        program: TAccountMetas[10];
    };
    data: ExecuteRelayerRefundLeafInstructionData;
};
export declare function parseExecuteRelayerRefundLeafInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedExecuteRelayerRefundLeafInstruction<TProgram, TAccountMetas>;
