import type { FocusRow } from './types.js'; /** INSERT a viewport. Throws on UNIQUE(node_id) if `node_id` already occupies * another focus (or on PK conflict if `focus_id` exists) — by design. */ export declare function openFocusRow(focus_id: string, pane: string | null, session: string | null, node_id: string): void; /** Hot-swap a focus's occupant — single-statement UPDATE. Respects * UNIQUE(node_id): if `node_id` already occupies ANOTHER focus this throws * (correct — vacate-first is placement.focus()'s job, not this setter's). */ export declare function setFocusOccupant(focus_id: string, node_id: string): void; /** Re-point a viewer row's durable pane + its derived session cache after the * pane moves. Single-statement UPDATE. */ export declare function setFocusPane(focus_id: string, pane: string | null, session: string | null): void; /** DELETE a viewport. */ export declare function closeFocusRow(focus_id: string): void; /** The focus a node occupies (≤1, UNIQUE node_id), or null. */ export declare function getFocusByNode(node_id: string): FocusRow | null; /** The focus realized by a given pane (`%id`), or null. */ export declare function getFocusByPane(pane: string): FocusRow | null; /** A focus by its stable id, or null. Used by placement to read a row back by id * after openFocusRow registers a viewer. */ export declare function getFocusById(focus_id: string): FocusRow | null; /** Every focus row, ordered by id. */ export declare function listFocuses(): FocusRow[];