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>>; }; type LazyQueryHookNames = { [K in keyof Definitions as Definitions[K] extends { type: DefinitionType.query; } ? `useLazy${Capitalize}Query` : never]: UseLazyQuery>>; }; type MutationHookNames = { [K in keyof Definitions as Definitions[K] extends { type: DefinitionType.mutation; } ? `use${Capitalize}Mutation` : never]: UseMutation>>; }; export type HooksWithUniqueNames = QueryHookNames & LazyQueryHookNames & MutationHookNames; export {};