import type { MutateOptions, MutationOptions } from '@tanstack/query-core' import { type SendCallsSyncErrorType, type SendCallsSyncParameters, type SendCallsSyncReturnType, sendCallsSync, } from '../actions/sendCallsSync.js' import type { Config } from '../createConfig.js' import type { MutationParameter } from '../types/query.js' import type { Compute } from '../types/utils.js' export type SendCallsSyncOptions< config extends Config, context = unknown, > = MutationParameter< SendCallsSyncData, SendCallsSyncErrorType, SendCallsSyncVariables, context > export function sendCallsSyncMutationOptions( config: config, options: SendCallsSyncOptions = {}, ): SendCallsSyncMutationOptions { return { ...(options.mutation as any), mutationFn(variables) { return sendCallsSync(config, variables) }, mutationKey: ['sendCallsSync'], } } export type SendCallsSyncMutationOptions = MutationOptions< SendCallsSyncData, SendCallsSyncErrorType, SendCallsSyncVariables > export type SendCallsSyncData = Compute export type SendCallsSyncVariables< config extends Config, chainId extends config['chains'][number]['id'], calls extends readonly unknown[] = readonly unknown[], > = SendCallsSyncParameters export type SendCallsSyncMutate = < const calls extends readonly unknown[], chainId extends config['chains'][number]['id'], >( variables: SendCallsSyncVariables, options?: | Compute< MutateOptions< SendCallsSyncData, SendCallsSyncErrorType, Compute>, context > > | undefined, ) => void export type SendCallsSyncMutateAsync< config extends Config, context = unknown, > = < const calls extends readonly unknown[], chainId extends config['chains'][number]['id'], >( variables: SendCallsSyncVariables, options?: | Compute< MutateOptions< SendCallsSyncData, SendCallsSyncErrorType, Compute>, context > > | undefined, ) => Promise