Async callback interfaces used across the SDK. Callback is invoked on the main thread and receives a Result that wraps either a success value or an exception.