import { InferArgs } from "./types";
/**
 * Create a throttle which runs up to `max` async functions at once with a queue limit
 * @param max - maximum number of async functions to run
 * @param queueMax - maximum number of functions to queue (0 = unlimited)
 * @param onDrop - callback when a function is dropped due to queue limit
 */
export default function makeThrottleWithLimit<T extends (...args: any[]) => any>(max: number, queueMax?: number, onDrop?: () => void): (fn: T) => (...args: InferArgs<T>[]) => Promise<InferArgs<T>>;
