(:refer-global [HTMLElement ImageData ...]) (:require-global [SomeThingy :refer [baz]]) ?
but that is the idea, if it's a standard browser thing externs can remove any ambiguities for sure.
that's not what :refer-global does, it's just a way to get global "vars", at most it would support :rename - it will never throw - because the "global" namespace is always there.
:require-global lets you treat some global var as a namespace. it supports the usual :require things - it will throw at runtime if a library cannot be found.
both of these behave differently from :require which always throws at compile time if the library cannot be resolved.
(:refer-global [Reflect]) and then use as (Reflect/get #js{:a 42}) => 42 ?
there's are challenges w/ method values I don't want to bring up here, for the time being.
is the intent to still allow setting up :as aliases? and nested access? (:refer-global [some.thing :as x]) and (x/foo ...) later?
I don't really see how :refer-global is any better than (:require [global:...]) or cljs.host..