export interface RpcRateLimitBackoffOptions {
    /** Multiplier applied to delay after each rate-limit hit. Default 2. */
    backoff?: number;
    /** Initial wait before the first retry. Default 1000ms. */
    initialDelayMs?: number;
    /** Total attempts including the first try. Default 8. */
    maxAttempts?: number;
    /** Cap on wait between retries. Default 30_000ms. */
    maxDelayMs?: number;
    /** Optional hook when a rate-limit triggers a backoff sleep. */
    onRetry?: (error: unknown, attempt: number, delayMs: number) => void;
}
/**
 * Runs an async RPC call, retrying with exponential backoff when the provider
 * reports rate limiting (e.g. Infura `-32005` / "Too Many Requests").
 * Non-rate-limit errors are rethrown immediately.
 */
export declare function withRpcRateLimitBackoff<T>(fn: () => Promise<T>, options?: RpcRateLimitBackoffOptions): Promise<T>;
//# sourceMappingURL=withRpcRateLimitBackoff.d.ts.map