# Type Alias: DecorateProcedure<TType, TDef>

> 

> **DecorateProcedure**\<`TType`, `TDef`\>: `TType` *extends* `"query"` ? [`DecorateQueryProcedure`](https://trpc.io/docs/typedoc/tanstack-react-query/interfaces/DecorateQueryProcedure.md)\<`TDef`\> & `TDef`\[`"input"`\] *extends* [`OptionalCursorInput`](https://trpc.io/docs/typedoc/tanstack-react-query/type-aliases/OptionalCursorInput.md) ? `DecorateInfiniteQueryProcedure`\<`TDef`\> : `Record`\<`string`, `never`\> : `TType` *extends* `"mutation"` ? [`DecorateMutationProcedure`](https://trpc.io/docs/typedoc/tanstack-react-query/interfaces/DecorateMutationProcedure.md)\<`TDef`\> : `TType` *extends* `"subscription"` ? [`DecorateSubscriptionProcedure`](https://trpc.io/docs/typedoc/tanstack-react-query/interfaces/DecorateSubscriptionProcedure.md)\<`TDef`\> : `never`

Defined in: [tanstack-react-query/src/internals/createOptionsProxy.ts:276](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/tanstack-react-query/src/internals/createOptionsProxy.ts#L276)

The helpers for a procedure of the given type.

## Type Parameters

| Type Parameter |
| ------ |
| `TType` *extends* `TRPCProcedureType` |
| `TDef` *extends* `ResolverDef` |
