import type { ScreenRootNode } from './schema.js'; /** Every node type the root union admits (KEE-574 item 3). */ export declare const KNOWN_NODE_TYPES: readonly ["heading", "text", "markdown", "stat", "button", "form", "table", "timeline", "pending_request", "pending_requests", "choice_cards", "progress", "chart", "section", "tabs"]; export type KnownNodeType = (typeof KNOWN_NODE_TYPES)[number]; /** * The node types that hold child nodes. `section` mounts its children * unconditionally; `tabs` (per-tab children) and `table` (per-row * `expand.children`) mount them only under renderer state a pre-render scan * cannot see — an open tab, an expanded row. */ export declare const KNOWN_CONTAINERS: readonly ["section", "tabs", "table"]; export type ContainerNodeType = (typeof KNOWN_CONTAINERS)[number]; export interface ContainerChild { node: ScreenRootNode; /** * True when the child mounts only under renderer state the pre-render scans * cannot know (tab selection, row expansion) — the surface KEE-573 exists * for. A `section` child inherits its parent's conditionality; this flag is * only the edge's own contribution, so walkers OR it with the inherited one. */ conditional: boolean; } /** The child nodes a container renders, in document order; empty for leaves. */ export declare function childNodesOf(node: ScreenRootNode): ContainerChild[];