import type { DefaultError, QueryKey } from '@tanstack/vue-query' import type { Config, Connector } from '@wagmi/core' import type { Ref, UnwrapRef } from 'vue-demi' import type { UseInfiniteQueryParameters, UseQueryParameters, } from './utils/query.js' type Primitive = string | number | boolean | bigint | symbol | undefined | null type UnwrapLeaf = | Primitive | Function | Date | Error | RegExp | Map | WeakMap | Set | WeakSet export type MaybeRef = Ref | T export type MaybeRefOrGetter = MaybeRef | (() => T) export type MaybeRefShallow = T extends object ? { [Property in keyof T]: MaybeRef } : T export type MaybeRefDeep = MaybeRef< T extends Function | Config | Connector ? T : T extends object | any[] ? { [Property in keyof T]: MaybeRefDeep } : T > export type ShallowUnwrapRef = T extends Ref ? P : T export type DeepUnwrapRef = T extends UnwrapLeaf ? T : T extends Ref ? DeepUnwrapRef : T extends {} ? { [Property in keyof T]: DeepUnwrapRef } : UnwrapRef export type DistributiveOmit = T extends any ? Omit : never export type EnabledParameter = { enabled?: boolean | undefined } export type ConfigParameter = { config?: Config | config | undefined } export type QueryParameter< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = { query?: | Omit< DeepUnwrapRef< UseQueryParameters >, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' > | undefined } export type InfiniteQueryParameter< queryFnData = unknown, error = DefaultError, data = queryFnData, queryData = queryFnData, queryKey extends QueryKey = QueryKey, pageParam = unknown, > = { query: Omit< DeepUnwrapRef< UseInfiniteQueryParameters< queryFnData, error, data, queryData, queryKey, pageParam > >, 'queryFn' | 'queryHash' | 'queryKey' | 'queryKeyHashFn' | 'throwOnError' > }