suspend fun drain(collector: FlowCollector<T>, onComplete: (ResumableCollector<T>) -> Unit = null): Unit