import type { MutateOptions, MutationOptions } from '@tanstack/query-core' import { type SendTransactionSyncErrorType, type SendTransactionSyncParameters, type SendTransactionSyncReturnType, sendTransactionSync, } from '../actions/sendTransactionSync.js' import type { Config } from '../createConfig.js' import type { MutationParameter } from '../types/query.js' import type { Compute } from '../types/utils.js' export type SendTransactionSyncOptions< config extends Config, context = unknown, > = MutationParameter< SendTransactionSyncData, SendTransactionSyncErrorType, SendTransactionSyncVariables, context > export function sendTransactionSyncMutationOptions< config extends Config, context, >( config: config, options: SendTransactionSyncOptions = {}, ): SendTransactionSyncMutationOptions { return { ...(options.mutation as any), mutationFn(variables) { return sendTransactionSync(config, variables) }, mutationKey: ['sendTransactionSync'], } } export type SendTransactionSyncMutationOptions = MutationOptions< SendTransactionSyncData, SendTransactionSyncErrorType, SendTransactionSyncVariables > export type SendTransactionSyncData = Compute export type SendTransactionSyncVariables< config extends Config, chainId extends config['chains'][number]['id'], > = SendTransactionSyncParameters export type SendTransactionSyncMutate< config extends Config, context = unknown, > = ( variables: SendTransactionSyncVariables, options?: | Compute< MutateOptions< SendTransactionSyncData, SendTransactionSyncErrorType, Compute>, context > > | undefined, ) => void export type SendTransactionSyncMutateAsync< config extends Config, context = unknown, > = ( variables: SendTransactionSyncVariables, options?: | Compute< MutateOptions< SendTransactionSyncData, SendTransactionSyncErrorType, Compute>, context > > | undefined, ) => Promise