/** * Loads the matching component bundle on first mount. Idempotent across * many components on the same page. Skips on the server (no document) so * React server components and Next.js SSR work without a flash. * * Defaults to the EXACT @roxyapi/ui release this wrapper was built against, so * `@roxyapi/ui-vue@x.y.z` always runs `@roxyapi/ui@x.y.z` and a lockfile actually * pins the runtime. It used to default to '@latest', which meant a pinned wrapper * silently picked up whatever the CDN was serving, and a new @roxyapi/ui release * changed the elements under every existing install with no lockfile change. * * Pass an explicit `version` to override, or 'latest' to opt back into floating. * * Pass `baseUrl` to serve the bundle from your own origin instead of the CDN, which is * what an air-gapped install or a strict Content-Security-Policy needs: copy * `node_modules/@roxyapi/ui/dist/cdn/` onto your host and call this once at app entry, * before any component mounts. The loader keeps a single shared promise, so the first * call wins and every component reuses it. */ /** The @roxyapi/ui release this wrapper was generated against. The loader defaults to it, so the wrapper version in your lockfile is the runtime you actually get. */ export declare const ROXY_UI_VERSION = "0.19.4"; export declare function ensureScriptLoaded(version?: string, baseUrl?: string): Promise; export default ensureScriptLoaded; //# sourceMappingURL=load-ui.d.ts.map