import type { UseMutation, UseLazyQuery, UseQuery } from './buildHooks' import type { DefinitionType, EndpointDefinitions, MutationDefinition, QueryDefinition, } from '@reduxjs/toolkit/query' type QueryHookNames = { [K in keyof Definitions as Definitions[K] extends { type: DefinitionType.query } ? `use${Capitalize}Query` : never]: UseQuery< Extract> > } type LazyQueryHookNames = { [K in keyof Definitions as Definitions[K] extends { type: DefinitionType.query } ? `useLazy${Capitalize}Query` : never]: UseLazyQuery< Extract> > } type MutationHookNames = { [K in keyof Definitions as Definitions[K] extends { type: DefinitionType.mutation } ? `use${Capitalize}Mutation` : never]: UseMutation< Extract> > } export type HooksWithUniqueNames = QueryHookNames & LazyQueryHookNames & MutationHookNames