import { b as NexusDefinition, C as CacheHandler } from '../definition-DCghXrsH.js'; import * as react_jsx_runtime from 'react/jsx-runtime'; type QueryRefetchMode = 'foreground' | 'background'; interface UseNexusQueryOptions { route?: string; enabled?: boolean; select?: (data: TData) => TSelectedData; revalidateOnWindowFocus?: boolean; revalidateOnMount?: boolean; keepStaleData?: boolean; } interface UseNexusQueryResult { data: TSelectedData | undefined; headers: Headers | undefined; error: Error | null; isPending: boolean; isPendingBackground: boolean; isSuccess: boolean; isError: boolean; revalidate: () => Promise; } type UseNexusInfiniteQueryOptions = UseNexusQueryOptions & { initialPageParam: TParam; getNextPageParam: (lastPage: TPage, pages: TPage[]) => TParam | null; prefetchNextOnNearViewport?: { rootMargin?: string; threshold?: number; strategy?: 'revalidate' | 'refetch'; mode?: QueryRefetchMode; }; keepPages?: number; }; type UseNexusInfiniteQueryResult = Omit, 'revalidate'> & { hasNextPage: boolean; revalidateNext: () => Promise; prefetchRef?: (el: Element | null) => void; }; interface UseNexusMutationOptions { route?: string; onStart?: (variables: TVariables) => TContext | Promise; onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => void | Promise; onError?: (error: TError, variables: TVariables, context: TContext | undefined) => void | Promise; onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => void | Promise; } interface UseNexusMutationResult { data: TData | undefined; headers: Headers | undefined; error: TError | null; isPending: boolean; isSuccess: boolean; isError: boolean; mutate: (variables: TVariables) => void; mutateAsync: (variables: TVariables) => Promise; reset: () => void; } interface UseNexusActionOptions { onStart?: (...args: TArgs) => void | Promise; onSuccess?: (result: TResult, ...args: TArgs) => void | Promise; onError?: (error: Error, ...args: TArgs) => void | Promise; onSettled?: (result: TResult | undefined, error: Error | null, ...args: TArgs) => void | Promise; } interface UseNexusActionResult { execute: (...args: TArgs) => void; executeAsync: (...args: TArgs) => Promise; isPending: boolean; isSuccess: boolean; isError: boolean; result: TResult | undefined; error: TError | null; reset: () => void; } interface UseNexusFormActionOptions { onStart?: () => void | Promise; onSuccess?: (result: TResult) => void | Promise; onError?: (error: Error) => void | Promise; onSettled?: (result: TResult | undefined, error: Error | null) => void | Promise; } interface UseNexusFormActionResult { formAction: (formData: FormData) => void; isPending: boolean; isSuccess: boolean; isError: boolean; result: TResult | undefined; error: TError | null; reset: () => void; } declare const useNexusQuery: (definition: NexusDefinition, options?: UseNexusQueryOptions) => UseNexusQueryResult; declare const useNexusInfiniteQuery: (getDefinition: (param: TParam) => NexusDefinition, options: UseNexusInfiniteQueryOptions) => UseNexusInfiniteQueryResult; declare const useNexusMutation: (mutationDefinition: (param: TParam) => NexusDefinition, options?: UseNexusMutationOptions) => UseNexusMutationResult; declare const useNexusAction: (serverAction: (...args: TArgs) => Promise, options?: UseNexusActionOptions) => UseNexusActionResult; declare function useNexusFormAction(serverAction: (formData: FormData) => Promise, options?: UseNexusFormActionOptions): UseNexusFormActionResult; declare const nexusCache: (definition: NexusDefinition) => CacheHandler; declare const revalidateClientTags: (tags: string[]) => void; declare const NexusRuntime: ({ maxSize }: { maxSize?: number; }) => react_jsx_runtime.JSX.Element; export { NexusRuntime, nexusCache, revalidateClientTags, useNexusAction, useNexusFormAction, useNexusInfiniteQuery, useNexusMutation, useNexusQuery };