import { type DefaultError, type DefinedInfiniteQueryObserverResult, type DefinedQueryObserverResult, type InfiniteData, type InfiniteQueryObserverOptions, type InfiniteQueryObserverResult, type MutationObserverOptions, type MutationObserverResult, type QueryKey, type MutateFunction as QueryMutateFunction, type QueryObserverOptions, type QueryObserverResult, type WithRequired, } from '@tanstack/query-core' type Override = { [K in keyof A]: K extends keyof B ? B[K] : A[K] } export type MutateFunction< TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown, > = ( ...args: Parameters> ) => void export type MutateAsyncFunction< TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown, > = QueryMutateFunction export type AtomWithMutationResult = Override< MutationObserverResult, { mutate: MutateFunction } > & { mutateAsync: MutateAsyncFunction } export type MutationOptions< TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown, > = Omit< MutationObserverOptions, '_defaulted' | 'variables' > export type BaseAtomWithQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = WithRequired< QueryObserverOptions, 'queryKey' > export type AtomWithQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = Omit< WithRequired< BaseAtomWithQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, 'queryKey' >, 'suspense' > export type AtomWithSuspenseQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = Omit< AtomWithQueryOptions, 'enabled' | 'throwOnError' | 'placeholderData' > export type AtomWithInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = WithRequired< Omit< InfiniteQueryObserverOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam >, 'suspense' >, 'queryKey' > export type AtomWithSuspenseInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = Omit< AtomWithInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam >, 'enabled' | 'throwOnError' | 'placeholderData' > export type AtomWithQueryResult< TData = unknown, TError = DefaultError, > = QueryObserverResult export type DefinedAtomWithQueryResult< TData = unknown, TError = DefaultError, > = DefinedQueryObserverResult export type AtomWithSuspenseQueryResult< TData = unknown, TError = DefaultError, > = | Omit, 'isPlaceholderData'> | Promise< Omit, 'isPlaceholderData'> > export type AtomWithInfiniteQueryResult< TData = unknown, TError = DefaultError, > = InfiniteQueryObserverResult export type DefinedAtomWithInfiniteQueryResult< TData = unknown, TError = DefaultError, > = DefinedInfiniteQueryObserverResult export type AtomWithSuspenseInfiniteQueryResult< TData = unknown, TError = DefaultError, > = Promise< Omit, 'isPlaceholderData'> > export type UndefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = AtomWithQueryOptions & { initialData?: undefined } type NonUndefinedGuard = T extends undefined ? never : T export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = AtomWithQueryOptions & { initialData: | NonUndefinedGuard | (() => NonUndefinedGuard) } export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = AtomWithInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & { initialData?: undefined } export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = AtomWithInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & { initialData: | NonUndefinedGuard> | (() => NonUndefinedGuard>) }