/**
* React Query Hook for Downloading Files
* Provides caching and state management for file downloads
*/
import type { DownloadFileRequest, DownloadFileResponse, ServiceOptions, QueryKey, UseQueryResult, ApiQueryOptions } from '@plyaz/types/api';
import type { ErrorResponse } from '@plyaz/types/errors';
import type { EndpointsList } from '@/api/endpoints';
/**
* Hook for downloading a file
*
* @param queryKey - React Query cache key
* @param request - Request with file ID
* @param serviceOptions - Optional service options (apiClient override, apiConfig override)
* @param queryOptions - Optional React Query options (enabled, staleTime, etc.)
* @returns React Query result with download data
*
* @example
* ```typescript
* function FileViewer({ fileId }: Props) {
* const { data, isLoading, error } = useDownloadFile(
* ['file', fileId],
* { id: fileId },
* undefined,
* { enabled: !!fileId }
* );
*
* if (isLoading) return ;
* if (error) return ;
*
* // Convert base64 to blob URL
* const blob = new Blob([
* Uint8Array.from(atob(data.buffer), c => c.charCodeAt(0))
* ], { type: data.mimeType });
* const blobUrl = URL.createObjectURL(blob);
*
* return ;
* }
* ```
*/
export declare function useDownloadFile(queryKey: QueryKey, request: DownloadFileRequest, serviceOptions?: ServiceOptions, queryOptions?: Omit, 'apiClient' | 'apiConfig'>): UseQueryResult;
//# sourceMappingURL=useDownloadFile.d.ts.map