export type ServiceOperationBaseQueryKey< S extends { url: string; method: string }, Infinite extends boolean, T, > = [S & { infinite: Infinite }, T]; export type ServiceOperationQueryKey< S extends { url: string; method: string }, T, > = ServiceOperationBaseQueryKey; export type ServiceOperationInfiniteQueryKey< S extends { url: string; method: string }, T, > = ServiceOperationBaseQueryKey; export type ServiceOperationMutationKey< S extends Record<'url' | 'method', string>, T, > = NonNullable extends never ? [S] : [S, T];