import { EdenClient, type EdenTreatyClient, type EmptyToVoid, type ExtractEdenTreatyRouteParams, type ExtractEdenTreatyRouteParamsInput, type HttpMutationMethod, type HttpQueryMethod, type InferRouteBody, type InferRouteError, type InferRouteOptions, type InferRouteOutput } from '@aydee-app/eden'; import { type CancelOptions, type CreateInfiniteQueryOptions, type CreateQueryOptions, type DehydratedState, type InfiniteData, type InvalidateOptions, type InvalidateQueryFilters, type Query, QueryClient, type QueryFilters, type QueryKey, type RefetchOptions, type RefetchQueryFilters, type ResetOptions, type SetDataOptions, type Updater } from '@tanstack/svelte-query'; import type { AnyElysia, RouteSchema } from 'elysia'; import type { EdenQueryConfig } from '../../config'; import { type EdenContextPropsBase, type EdenContextState } from '../../context'; import type { EdenCreateInfiniteQueryOptions } from '../../integration/hooks/create-infinite-query'; import type { EdenCreateMutationOptions } from '../../integration/hooks/create-mutation'; import type { EdenFetchInfiniteQueryOptions } from '../../integration/hooks/fetch-infinite'; import type { EdenFetchQueryOptions } from '../../integration/hooks/fetch-query'; import type { ExtractCursorType, InfiniteCursorKey, ReservedInfiniteQueryKeys } from '../../integration/internal/infinite-query'; import { type EdenQueryKey } from '../../integration/internal/query-key'; import type { DeepPartial, Override, ProtectedIntersection } from '../../utils/types'; export type EdenTreatySvelteQueryUtils = ProtectedIntersection, EdenTreatySvelteQueryUtilsProxy>; export type DecoratedEdenTreatySvelteQueryContextProps = Omit, 'client'> & { client: EdenTreatyClient; }; export type EdenTreatySvelteQueryContextProps = EdenContextPropsBase & { client: EdenClient; }; export type EdenTreatySvelteQueryUtilsProxy, TPath extends any[] = [], TRouteParams = ExtractEdenTreatyRouteParams> = EdenTreatyQueryUtilsUniversalUtils & { [K in keyof TSchema]: TSchema[K] extends RouteSchema ? EdenTreatyQueryUtilsMapping : EdenTreatySvelteQueryUtilsProxy; } & ({} extends TRouteParams ? {} : (params: ExtractEdenTreatyRouteParamsInput) => EdenTreatySvelteQueryUtilsProxy], TPath>); type EdenTreatyQueryUtilsMapping['query']> = TMethod extends HttpQueryMethod ? EdenTreatyQueryUtilsQueryUtils & (InfiniteCursorKey extends keyof TInput ? EdenTreatyQueryUtilsInfiniteUtils : {}) : TMethod extends HttpMutationMethod ? EdenQueryUtilsMutationUtils : never; export type EdenTreatyQueryUtilsQueryUtils['query'], TOutput = InferRouteOutput, TError = InferRouteError, TKey extends QueryKey = EdenQueryKey> = { fetch: (input: EmptyToVoid, options?: EdenFetchQueryOptions) => Promise; prefetch: (input: EmptyToVoid, options?: EdenFetchQueryOptions) => Promise; ensureData: (input: EmptyToVoid, options?: EdenFetchQueryOptions) => Promise; invalidate: (input?: DeepPartial, filters?: Override) => boolean; }>, options?: InvalidateOptions) => Promise; refetch: (input?: TInput, filters?: RefetchQueryFilters, options?: RefetchOptions) => Promise; cancel: (input?: TInput, filters?: QueryFilters, options?: CancelOptions) => Promise; reset: (input?: TInput, options?: ResetOptions) => Promise; setData: (input: TInput, updater: Updater, options?: SetDataOptions) => void; /** * @link https://tanstack.com/query/v5/docs/reference/QueryClient#queryclientsetquerydata */ setQueriesData(input: TInput, filters: QueryFilters, updater: Updater, options?: SetDataOptions): [QueryKey, TOutput]; getData: (input: EmptyToVoid) => TOutput | undefined; options: (input: EmptyToVoid, options?: CreateQueryOptions) => CreateQueryOptions; }; export type EdenTreatyQueryUtilsInfiniteUtils['query'], TOutput = InferRouteOutput, TError = InferRouteError, TKey extends QueryKey = EdenQueryKey> = { fetchInfinite: (input: EmptyToVoid, options?: EdenFetchInfiniteQueryOptions) => Promise>>>; prefetchInfinite: (input: EmptyToVoid, options?: EdenFetchQueryOptions) => Promise; getInfiniteData: (input: EmptyToVoid) => InfiniteData>> | undefined; setInfiniteData: (input: TInput, updater: Updater>> | undefined, InfiniteData>> | undefined>, options?: SetDataOptions) => void; infiniteOptions: (input: EmptyToVoid, options?: EdenCreateInfiniteQueryOptions) => CreateInfiniteQueryOptions; }; export type EdenQueryUtilsMutationUtils, TOutput = InferRouteOutput, TError = InferRouteError, _TKey extends QueryKey = EdenQueryKey> = { setMutationDefaults(options: EdenCreateMutationOptions | ((args: { canonicalMutationFn: NonNullable['mutationFn']>; }) => EdenCreateMutationOptions)): void; getMutationDefaults(): EdenCreateMutationOptions | undefined; isMutating(): number; }; /** * Utility hooks available at all levels of the utilities proxy. */ export type EdenTreatyQueryUtilsUniversalUtils = { /** * Invalidate the full router * @link https://trpc.io/docs/v10/useContext#query-invalidation * @link https://tanstack.com/query/v5/docs/framework/react/guides/query-invalidation */ invalidate(input?: undefined, filters?: InvalidateQueryFilters, options?: InvalidateOptions): Promise; }; export declare function createEdenTreatyQueryUtils(context: EdenContextState, config?: EdenQueryConfig): EdenTreatySvelteQueryUtils; export declare function mergeDehydrated(source: DehydratedState | QueryClient, destination: DehydratedState): DehydratedState; export declare function createEdenTreatyQueryUtilsProxy(context: EdenContextState, config?: EdenQueryConfig, originalPaths?: string[], pathParams?: Record[]): EdenTreatySvelteQueryUtils; export {}; //# sourceMappingURL=query-utils.d.ts.map