class Halo {

    @Keep
    @Api(2.0)
    public void ready(@NonNull final HaloReadyListener listener) {
        ensureExists();
        try {
            mReadyChecker.checkReady(listener);
        } catch (InterruptedException e) {
            Halog.e(getClass(), "A thread has been interrupted abruptly", e);
            listener.onHaloReady();
        }
    }

      Halo(@NonNull HaloConfig.Builder configurationBuilder,
         @NonNull HaloSessionManager sessionManager,
         @Nullable Credentials credentials,
         @Nullable List<TagCollector> tagCollectors,
         @Nullable StartupProcess[] processes);

}