import type { RetainedSource } from "@lobu/core/contracts/tools/source-files"; export interface ViewMetadata { key: string; attach: Array>; params: Record; actions: Record; } export interface BundledView extends RetainedSource { compiledCode: string; metadata: ViewMetadata; } /** * Bundle the view at `entry` (absolute path) for the browser. Throws when the * module has no `view` export, no default-export component, or an invalid * key — all fail loud at apply time, never as a blank frame. */ export declare function bundleViewFromFile(entry: string, projectRoot: string): Promise; /** * The `lobu run` watch set for one view: the entry plus every file esbuild * pulled in (relative components, shared lib), from the metafile — so editing * an imported file rebuilds the view. Returned as absolute paths. */ export declare function collectViewWatchFiles(entry: string): Promise; /** * Generated bundles must be portable: no developer home, checkout, or worktree * directory may leak into the shipped bytes (or the stored view breaks on any * other machine and leaks machine state). esbuild emits relative names by * default; this is the backstop that fails the apply when it does not. */ export declare function assertBundlePortable(compiledCode: string, entry: string): void; //# sourceMappingURL=view-bundler.d.ts.map