'use client' import type { QueryObserver, QueryFunction, QueryKey, } from '@tanstack/query-core' import { InfiniteQueryObserver, parseQueryArgs } from '@tanstack/query-core' import type { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types' import { useBaseQuery } from './useBaseQuery' // HOOK export function useInfiniteQuery< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, ): UseInfiniteQueryResult export function useInfiniteQuery< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( queryKey: TQueryKey, options?: Omit< UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, 'queryKey' >, ): UseInfiniteQueryResult export function useInfiniteQuery< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( queryKey: TQueryKey, queryFn: QueryFunction, options?: Omit< UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, 'queryKey' | 'queryFn' >, ): UseInfiniteQueryResult export function useInfiniteQuery< TQueryFnData, TError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( arg1: | TQueryKey | UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, arg2?: | QueryFunction | UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, arg3?: UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, ): UseInfiniteQueryResult { const options = parseQueryArgs(arg1, arg2, arg3) return useBaseQuery( options, InfiniteQueryObserver as typeof QueryObserver, ) as UseInfiniteQueryResult }