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 } from "@solana/kit";
import { SVM_SPOKE_PROGRAM_ADDRESS } from "../programs";
export declare const CLAIM_RELAYER_REFUND_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getClaimRelayerRefundDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
export type ClaimRelayerRefundInstruction<TProgram extends string = typeof SVM_SPOKE_PROGRAM_ADDRESS, TAccountSigner extends string | AccountMeta<string> = string, TAccountInitializer extends string | AccountMeta<string> = string, TAccountState extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountRefundAddress extends string | AccountMeta<string> = string, TAccountTokenAccount extends string | AccountMeta<string> = string, TAccountClaimAccount extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountEventAuthority extends string | AccountMeta<string> = string, TAccountProgram extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
    TAccountSigner extends string ? ReadonlySignerAccount<TAccountSigner> & AccountSignerMeta<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(): FixedSizeEncoder<ClaimRelayerRefundInstructionDataArgs>;
export declare function getClaimRelayerRefundInstructionDataDecoder(): FixedSizeDecoder<ClaimRelayerRefundInstructionData>;
export declare function getClaimRelayerRefundInstructionDataCodec(): FixedSizeCodec<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 AccountMeta[] = readonly AccountMeta[]> = {
    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 AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedClaimRelayerRefundInstruction<TProgram, TAccountMetas>;
