import { type DefaultError, QueryClient, type QueryKey, QueryObserver, } from '@tanstack/query-core' import { Getter, WritableAtom } from 'jotai' import { queryClientAtom } from './_queryClientAtom' import { baseAtomWithQuery } from './baseAtomWithQuery' import { AtomWithQueryOptions, AtomWithQueryResult, DefinedAtomWithQueryResult, DefinedInitialDataOptions, UndefinedInitialDataOptions, } from './types' export function atomWithQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( getOptions: ( get: Getter ) => UndefinedInitialDataOptions, getQueryClient?: (get: Getter) => QueryClient ): WritableAtom, [], void> export function atomWithQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( getOptions: ( get: Getter ) => DefinedInitialDataOptions, getQueryClient?: (get: Getter) => QueryClient ): WritableAtom, [], void> export function atomWithQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( getOptions: ( get: Getter ) => AtomWithQueryOptions, getQueryClient?: (get: Getter) => QueryClient ): WritableAtom, [], void> export function atomWithQuery( getOptions: (get: Getter) => AtomWithQueryOptions, getQueryClient: (get: Getter) => QueryClient = (get) => get(queryClientAtom) ) { return baseAtomWithQuery(getOptions, QueryObserver, getQueryClient) }