It really depends on your case.
Usually better just to expose suspend function.
But if you have some background tasks, than it’s more tricky, you can expose of course API that allows to pass custom dispatcher or just max parallelism (same way as kotlinx.coroutines provides system properties for that)