/** * One editor's live-screen holds: the budget, the page ids holding a slot in * recency order, and the listeners frames subscribe through. The bodies below * are the former module-level functions, closed over instance state instead * of module state. Every runtime owns one. */ /** How many frames render live unless the host says otherwise. */ export declare const DEFAULT_LIVE_SCREEN_BUDGET = 3; /** * The most instances a screen-state group may hold at once. The budget * follows the active group's size up to here so every variant of a small * group stays booted and a switch between them is instant; a larger group * keeps its most recently used variants live. */ export declare const LIVE_SCREEN_GROUP_BUDGET_CAP = 5; export declare function createLiveScreens(): { subscribeLiveScreens: (listener: () => void) => () => void; setLiveScreenBudget: (next: number) => void; setLiveScreenGroupSize: (next: number) => void; getEffectiveLiveScreenBudget: () => number; setLiveScreenCandidates: (next: readonly string[]) => void; getLiveScreenBudget: () => number; requestLiveScreen: (pageId: string) => boolean; releaseLiveScreen: (pageId: string) => void; holdsLiveScreen: (pageId: string) => boolean; liveScreenHolders: () => readonly string[]; resetLiveScreens: () => void; }; export type LiveScreens = ReturnType;