//#region src/internal/fetch-utils.d.ts
/**
 * Fetch with timeout using AbortController
 * @param url - The URL to fetch
 * @param options - Standard fetch options
 * @param timeoutMs - Timeout in milliseconds (default: 30000)
 * @returns Promise<Response>
 * @throws Error if request times out
 */
declare function fetchWithTimeout(url: string | URL, options?: RequestInit, timeoutMs?: number): Promise<Response>;
/**
 * Retry a function with exponential backoff
 * @param fn - The async function to retry
 * @param options - Retry options
 * @param options.maxRetries - Maximum number of retries (default: 3)
 * @param options.initialDelay - Initial delay in milliseconds (default: 1000)
 * @param options.shouldRetry - Predicate to determine if error should be retried (default: always retry)
 * @returns Promise with the function result
 * @throws The last error if all retries are exhausted
 */
declare function retryWithBackoff<T>(fn: () => Promise<T>, {
  maxRetries,
  initialDelay,
  shouldRetry
}?: {
  maxRetries?: number;
  initialDelay?: number;
  shouldRetry?: (error: unknown) => boolean;
}): Promise<T>;
//# sourceMappingURL=fetch-utils.d.ts.map
//#endregion
export { fetchWithTimeout, retryWithBackoff };
//# sourceMappingURL=fetch-utils.d.ts.map