import type { InteractiveSessionSurface } from '../editor/interactiveSessionSurface.js'; /** * True while a flow session still owes this screen its snapshot. Frames use * it exactly like the artifact-hydration gate: activation waits for the * session's delivery instead of booting a live app of its own. */ export declare function useFlowSessionPending(screenId: string): boolean; /** * True while a viewport-variant session (committed size change) still owes * this page its snapshot at the given viewport. While pending, the frame * holds its provisional tree instead of live re-measuring — the delivery * mounts as a frozen preview and promotes over the provisional import. */ export declare function useViewportSessionPending(page: { importPageId?: string; id: string; }, viewport: { width: number; height: number; }): boolean; /** * True while an interactive-state session (a declared axis the frame is held * in, such as a folded sidebar) still owes this page its snapshot. The frame * waits for it instead of booting the app and replaying the whole recipe * itself — the session does that work in one instance the warm pool keeps. */ export declare function useInteractiveSessionPending(page: { id: string; interactiveStateId?: string; interactiveOptionId?: string; interactiveOptionIds?: readonly string[]; interactiveStateUsesDesiredState?: boolean; }, targetCacheKey?: string): boolean; /** The runner-owned live document currently reproducing this state. */ export declare function useInteractiveSessionSurface(page: { id: string; interactiveStateId?: string; interactiveOptionId?: string; interactiveOptionIds?: readonly string[]; interactiveStateUsesDesiredState?: boolean; }, preparedSurfaceId?: string | null): InteractiveSessionSurface | null; /** * True while this frame holds one of the host's live screen slots, meaning it * renders the running app rather than its frozen capture. */ export declare function useLiveScreenSlot(pageId: string): boolean;