import type { DefaultError, DehydrateOptions, HydrateOptions, MutationCache, MutationObserverOptions, OmitKeyof, QueryCache, QueryObserverOptions, } from '@tanstack/query-core' import type { ComputedRef, Ref, UnwrapRef } from 'vue-demi' type Primitive = string | number | boolean | bigint | symbol | undefined | null type UnwrapLeaf = | Primitive | Function | Date | Error | RegExp | Map | WeakMap | Set | WeakSet export type MaybeGetter = T | (() => T) export type MaybeRef = Ref | ComputedRef | T export type MaybeRefOrGetter = MaybeRef | (() => T) export type MaybeRefDeep = MaybeRef< T extends Function ? T : T extends object ? { [Property in keyof T]: MaybeRefDeep } : T > export type NoUnknown = Equal extends true ? never : T export type Equal = (() => T extends TTargetA ? 1 : 2) extends () => T extends TTargetB ? 1 : 2 ? true : false export type DeepUnwrapRef = T extends UnwrapLeaf ? T : T extends Ref ? DeepUnwrapRef : T extends {} ? { [Property in keyof T]: DeepUnwrapRef } : UnwrapRef export type ShallowOption = { /** * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. */ shallow?: boolean } export type MutationOptions< TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown, > = OmitKeyof< MutationObserverOptions, '_defaulted' > & ShallowOption export interface DefaultOptions { queries?: OmitKeyof, 'queryKey'> & ShallowOption mutations?: MutationObserverOptions & ShallowOption hydrate?: HydrateOptions['defaultOptions'] dehydrate?: DehydrateOptions } export interface QueryClientConfig { queryCache?: QueryCache mutationCache?: MutationCache defaultOptions?: DefaultOptions }