Wait for the queue to become idle (no pending debounces, no queued items, no active work).
A promise that resolves when the queue is drained.
Enqueue an event, debounced per path+priority.
The watch event.
The processing function to invoke when dequeued.
Start processing events.
A debounced, rate-limited, concurrent event queue.