import{type LyraWidgetTypeRegistry}from'./registry.js';export interface LyraWidgetNode{readonly type:string;readonly id?:string;readonly props?:Readonly>;readonly children?:readonly(LyraWidgetNode|string)[];readonly slot?:string;readonly actionId?:string;readonly payload?:unknown;}export interface LyraWidgetBinding{readonly $bind:string;readonly fallback?:string|number|boolean|null;} /** Version-two document. Controlled binding state is supplied separately through `bindingState`. */ export interface LyraWidgetDocument{readonly version:'2';readonly root:LyraWidgetNode;} /** * Creates an immediate, bounded, frozen version-two document snapshot. Widget-owned structure and * prop records are copied; opaque prop values and action payloads intentionally retain identity. * String children and string prop values are truncated to `WIDGET_MAX_STRING_LENGTH`, the same * silent admission ceiling the depth/node/prop budgets apply here. * Malformed, cyclic, duplicate-id, or hostile input throws `TypeError` before a document escapes. */ export declare function createWidgetDocument(root:LyraWidgetNode):LyraWidgetDocument;export interface ResolvedText{ /** Collision-free deterministic reconciliation key. */ nodeKey:string;nodePath:string;kind:'text';text:string;slot?:string;}export interface ResolvedElement{ /** Explicit public identity, when authored. Stateful/actionable mapped nodes always have one. */ nodeId?:string; /** Collision-free deterministic key: authored id when present, otherwise structural path. */ nodeKey:string; /** Deterministic occurrence path within this document. */ nodePath:string;kind:'builtin-row'|'builtin-col'|'builtin-text'|'mapped';tag?:string; /** Semantic control classification, independent of actions and bindings. */ interactive:boolean;props:Record;actionEvent?:string;actionId?:string;payload?:unknown;bindings:Array<{prop:string;path:string;event?:string;}>;children:ResolvedNode[];slot?:string;}export type ResolvedNode=ResolvedText|ResolvedElement;export interface ResolveContext{registry:LyraWidgetTypeRegistry;bindingState:unknown; /** Warning keys retained for one renderer document/registry generation. */ warned:Set; /** Explicit diagnostic callback, active in every runtime. Without one, authoring warnings * are emitted only in development; keys and caps belong to this context generation. */ warn?:(message:string)=>void;} /** Resolves one bounded immutable snapshot through `ctx.registry`. Structural invalidity returns * `null`; throwing getters/registry access propagate so the renderer can emit one normalized error. */ export declare function resolveTree(root:LyraWidgetNode|null|undefined,ctx:ResolveContext):ResolvedNode|null;