import { AnyProcedure, inferProcedureInput } from '@trpc/server';
import { inferTransformedProcedureOutput } from '@trpc/server/shared';
import { InferMutationOptions, InferMutationResult } from '../../utils/inferReactQueryProcedure';
/**
 * Use to describe a mutation route which matches a given mutation procedure's interface
 */
export declare type MutationLike<TProcedure extends AnyProcedure = AnyProcedure> = {
    useMutation: (opts?: InferMutationOptions<TProcedure>) => InferMutationResult<TProcedure>;
};
/**
 * Use to unwrap a MutationLike's input
 */
export declare type InferMutationLikeInput<TMutationLike extends MutationLike> = TMutationLike extends MutationLike<infer TProcedure> ? inferProcedureInput<TProcedure> : never;
/**
 * Use to unwrap a MutationLike's data output
 */
export declare type InferMutationLikeData<TMutationLike extends MutationLike> = TMutationLike extends MutationLike<infer TProcedure> ? inferTransformedProcedureOutput<TProcedure> : never;
//# sourceMappingURL=mutationLike.d.ts.map