/** Single-app transport (08-ui §3). */ import { type AppDocument, type AppId, type Json, type ToolOutcome } from "../../core/index.js"; import type { EditResult, OpenSurface, VersionEntry } from "../../core/apps/index.js"; export interface AppOptions { /** H16 — `false` means DON'T boot: no `apps.get`, no `apps.open`, no iframe. * A grid of live app tiles gates this on visibility so the thirty apps below * the fold cost nothing until they are scrolled to. Defaults on, so every * existing caller is unchanged. */ enabled?: boolean; } export declare function useApp(appId: AppId, { enabled }?: AppOptions): { app: AppDocument | undefined; surface: OpenSurface | undefined; /** What the build last said about itself while the surface is still pending * (`PendingSurface.status`) — the whole progress channel FINAL SPEC v1 * allows. The poll below read it and threw it away, so a caller waiting on a * detached build had nothing to show but a spinner. */ status: string | undefined; error: Error | undefined; isLoading: boolean; call(ref: string, args: Json): Promise; edit(instruction: string): Promise; history: { list(): Promise; }; refresh(): Promise; };