import type { DataTag, DefaultError, QueryKey } from '@tanstack/query-core' import type { UseQueryOptions } from './types' export type UndefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions & { initialData?: undefined } type NonUndefinedGuard = T extends undefined ? never : T export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions & { initialData: | NonUndefinedGuard | (() => NonUndefinedGuard) } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UndefinedInitialDataOptions, ): UndefinedInitialDataOptions & { queryKey: DataTag } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: DefinedInitialDataOptions, ): DefinedInitialDataOptions & { queryKey: DataTag } export function queryOptions(options: unknown) { return options }