import type { DataTag, DefaultError, InitialDataFunction, NonUndefinedGuard, OmitKeyof, QueryFunction, QueryKey, SkipToken, } 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 | InitialDataFunction> | NonUndefinedGuard } export type UnusedSkipTokenOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = OmitKeyof< UseQueryOptions, 'queryFn' > & { queryFn?: Exclude< UseQueryOptions['queryFn'], SkipToken | undefined > } export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = Omit, 'queryFn'> & { initialData: | NonUndefinedGuard | (() => NonUndefinedGuard) queryFn?: QueryFunction } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: DefinedInitialDataOptions, ): DefinedInitialDataOptions & { queryKey: DataTag } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UnusedSkipTokenOptions, ): UnusedSkipTokenOptions & { queryKey: DataTag } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UndefinedInitialDataOptions, ): UndefinedInitialDataOptions & { queryKey: DataTag } export function queryOptions(options: unknown) { return options }