import type { AnyProcedure, AnyRootTypes, inferProcedureInput, inferTransformedProcedureOutput, } from '@trpc/server/unstable-core-do-not-import'; import type { InferMutationOptions, InferMutationResult, } from '../../utils/inferReactQueryProcedure'; /** * Use to describe a mutation route which matches a given mutation procedure's interface */ export type MutationLike< TRoot extends AnyRootTypes, TProcedure extends AnyProcedure, > = { useMutation: ( opts?: InferMutationOptions, ) => InferMutationResult; }; /** * Use to unwrap a MutationLike's input */ export type InferMutationLikeInput< TMutationLike extends MutationLike, > = TMutationLike extends MutationLike ? inferProcedureInput<$Procedure> : never; /** * Use to unwrap a MutationLike's data output */ export type InferMutationLikeData< TMutationLike extends MutationLike, > = TMutationLike extends MutationLike ? inferTransformedProcedureOutput : never;