/** * React Query hooks for common API operations */ import { type UseQueryOptions, type UseMutationOptions, type UseInfiniteQueryOptions } from '@tanstack/react-query'; import type { ApiClient } from '../client/api-client'; import type { RequestConfig, ApiResponse, PaginatedResponse } from '../types'; export declare function setGlobalApiClient(client: ApiClient): void; /** * Generic fetch hook */ export declare function useApiFetch(key: readonly unknown[], url: string, config?: RequestConfig, options?: Omit, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult, Error>; /** * Generic mutation hook */ export declare function useApiMutation(mutationFn: (variables: TVariables) => Promise>, options?: UseMutationOptions, Error, TVariables>): import("@tanstack/react-query").UseMutationResult, Error, TVariables, unknown>; /** * GET request hook */ export declare function useGet(key: readonly unknown[], url: string, config?: RequestConfig, options?: Omit, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult, Error>; /** * POST request hook */ export declare function usePost(url: string, options?: UseMutationOptions, Error, TVariables>): import("@tanstack/react-query").UseMutationResult, Error, TVariables, unknown>; /** * PUT request hook */ export declare function usePut(url: string, options?: UseMutationOptions, Error, TVariables>): import("@tanstack/react-query").UseMutationResult, Error, TVariables, unknown>; /** * PATCH request hook */ export declare function usePatch(url: string, options?: UseMutationOptions, Error, TVariables>): import("@tanstack/react-query").UseMutationResult, Error, TVariables, unknown>; /** * DELETE request hook */ export declare function useDelete(url: string, options?: UseMutationOptions, Error, void>): import("@tanstack/react-query").UseMutationResult, Error, void, unknown>; /** * Paginated query hook */ export declare function usePaginatedQuery(key: readonly unknown[], url: string, page?: number, limit?: number, config?: RequestConfig, options?: Omit>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult, Error>; /** * Infinite query hook for pagination */ export declare function useInfiniteApiQuery(key: readonly unknown[], url: string, config?: RequestConfig, options?: Omit>, 'queryKey' | 'queryFn' | 'getNextPageParam'>): import("@tanstack/react-query").UseInfiniteQueryResult, Error>; /** * Search query hook with debouncing */ export declare function useSearchQuery(query: string, url: string, config?: RequestConfig, options?: Omit, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult; /** * Cache management hooks */ export declare function useCacheUtils(): { invalidateQueries: (key: readonly unknown[]) => Promise; refetchQueries: (key: readonly unknown[]) => Promise; removeQueries: (key: readonly unknown[]) => void; setQueryData: (key: readonly unknown[], data: TData) => unknown; getQueryData: (key: readonly unknown[]) => TData | undefined; prefetchQuery: (key: readonly unknown[], fetcher: () => Promise, staleTime?: number) => Promise; }; /** * Optimistic update hook */ export declare function useOptimisticMutation(mutationFn: (variables: TVariables) => Promise>, queryKey: readonly unknown[], optimisticUpdate: (oldData: TData | undefined, variables: TVariables) => TData, options?: UseMutationOptions, Error, TVariables, { previousData: TData | undefined; }>): import("@tanstack/react-query").UseMutationResult, Error, TVariables, { previousData: TData | undefined; }>; //# sourceMappingURL=hooks.d.ts.map