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. Ignored once stopped.
The watch event.
The processing function to invoke when dequeued.
Pause processing events. Events can still be enqueued but will not be processed.
Alias of EventQueue.start, kept for existing callers.
Resume processing events.
Start processing events (events enqueued earlier are held until now).
Stop: cancel pending debounces, drop queued events, ignore new ones, and resolve once in-flight work finishes. Drain waiters resolve then too.
A debounced, concurrent event queue.