class HaloManagerApi extends HaloPluginApi {

    @Keep
    @NonNull
    @Api(2.0)
    @CheckResult(suggest = "You may want to call asContent() or asRaw() to get the information")
    public HaloSelectorFactory<List<HaloModule>, Cursor> getModules(@Data.Policy int dataMode, @NonNull HaloModuleQuery moduleQuery) {
        return new HaloSelectorFactory<>(
                halo(),
                new RequestModulesInteractor(mModulesRepository, moduleQuery),
                new Cursor2ModulesConverter(),
                null,
                dataMode,
                "Get modules request"
        );
    }

    private  HaloManagerApi(@NonNull Halo halo);

}