import type { MutateOptions, MutationOptions } from "@tanstack/query-core"; import type { Compute } from "@wagmi/core/internal"; import type { WriteContractErrorType } from "viem"; import type { Config } from "wagmi"; import { type CreateSessionParameters, type CreateSessionReturnType, createSession, } from "../actions/createSession.js"; export function createSessionMutationOptions( config: config, ) { return { mutationFn: async (variables) => { return createSession(config, variables); }, mutationKey: ["createSession"], } as const satisfies MutationOptions< CreateSessionData, WriteContractErrorType, CreateSessionVariables >; } export type CreateSessionVariables< config extends Config, chainId extends config["chains"][number]["id"], > = CreateSessionParameters; export type CreateSessionData = Compute; export type CreateSessionMutate = < chainId extends config["chains"][number]["id"], >( variables: CreateSessionVariables, options?: | MutateOptions< CreateSessionData, WriteContractErrorType, CreateSessionVariables, context > | undefined, ) => void; export type CreateSessionMutateAsync< config extends Config, context = unknown, > = ( variables: CreateSessionVariables, options?: | MutateOptions< CreateSessionData, WriteContractErrorType, CreateSessionVariables, context > | undefined, ) => Promise;