UNPKG

@dbs-portal/core-api

Version:

HTTP client and API utilities for DBS Portal

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