import { InvalidateQueryFilters, QueryKey, QueryState } from '@tanstack/react-query'; /** * Prefetch query options */ export interface PrefetchOptions { staleTime?: number; force?: boolean; } /** * Hook to prefetch queries on demand */ export declare function usePrefetch(): { prefetch: (queryKey: QueryKey, queryFn: () => Promise, options?: PrefetchOptions) => Promise; }; /** * Hook to invalidate queries by pattern */ export declare function useInvalidateQueries(): { invalidate: (filters: InvalidateQueryFilters) => Promise; invalidateAll: () => Promise; invalidateByKey: (queryKey: QueryKey) => Promise; }; /** * Hook to get query state information */ export declare function useQueryState(queryKey: QueryKey): { state: QueryState | undefined; data: T | undefined; isLoading: boolean; isError: boolean; isSuccess: boolean; isPending: boolean; }; /** * Hook to manage optimistic updates */ export declare function useOptimisticUpdate(): { update: (queryKey: QueryKey, updateFn: (old: T | undefined) => T, mutationFn: () => Promise, options?: { onError?: (error: Error, previousData: T | undefined) => void; onSuccess?: (result: R) => void; }) => Promise; }; /** * Merge paginated data helper */ export declare function mergePaginatedData(existing: T[] | undefined, incoming: T[]): T[]; /** * Infinite query page merger */ export declare function mergeInfinitePages(pages: T[][], newPage: T[], pageIndex: number): T[][]; /** * Query retry delay calculator (exponential backoff) */ export declare function calculateRetryDelay(attemptIndex: number): number; /** * Check if query data is stale */ export declare function isQueryStale(state: QueryState | undefined, staleTime: number): boolean; /** * Create a typed query key factory */ export declare function createQueryKeyFactory>(scope: string): { all: readonly [string]; lists: () => readonly [string, 'list']; list: (filters?: T) => readonly [string, 'list', T | undefined]; details: () => readonly [string, 'detail']; detail: (id: string) => readonly [string, 'detail', string]; }; /** * Batch query updates for performance */ export declare function useBatchQueryUpdates(): { batchUpdate: (updates: Array<{ queryKey: QueryKey; data: unknown; }>) => void; };