import { RestResponse } from './admin.js'; /** * Throttles a provided action, limiting the number of globally parallel requests, or by the last seen API limit * headers. * * @param request - A function performing a request. * @returns - The result of the request, once it eventually runs. */ export declare function throttle(request: () => T): Promise; /** * Keep track of the latest API call limit data from a response. * * @param response - The response object. */ export declare function updateApiCallLimitFromResponse(response: RestResponse): void; /** * Extracts the retry delay in milliseconds from the response's `retry-after` header. * * @param response - The response object. * @returns The retry delay in milliseconds, or 0 if not present/invalid. */ export declare function extractRetryDelayMsFromResponse(response: RestResponse): number; /** * Retries an operation after a delay specified in the response headers. * * @param response - The response object. * @param operation - The operation to retry. * @returns - The response of the operation. */ export declare function delayAwareRetry(response: RestResponse, operation: () => Promise): Promise; /** * Extracts the API call limit (used/total) from the response's `x-shopify-shop-api-call-limit` header. * * @param response - The response object. * @returns A tuple of [used, limit], or undefined if the header is missing/invalid. */ export declare function extractApiCallLimitFromResponse(response: RestResponse): [number, number] | undefined;