export interface LiveCustomMessage { customType: string; content: string; /** Omitted → pushed straight onto the message list (lands first in an empty * session). `nextTurn` → folded into whatever turn comes next. */ deliverAs?: 'nextTurn'; /** Extension-only metadata, never sent to the LLM. */ details?: { nodeId: string; }; } /** Deliver `message` into `nodeId`'s live session. Resolves without doing * anything when the node has no live broker. Rejects when a live broker cannot * be reached or refuses the frame — the caller decides what that means (for a * warm claim it is fatal: a node wearing the wrong bearings is worse than a * slow one, so the spare is abandoned and the create goes cold). */ export declare function deliverCustomMessageLive(nodeId: string, message: LiveCustomMessage): Promise; /** Build and deliver `nodeId`'s bearings into its live session. Called by the * warm-pool claim once the row already wears the claimant's kind/mode/name, so * the identity assertion, the knowledge catalog, and the `` * environment snapshot are all built for the node being handed out. * * The `details.nodeId` stamp is what the context-intro extension's idempotency * guard matches on, so a LATER revive of this node sees its own bearings * already on the branch and does not inject a second copy. */ export declare function deliverBearingsLive(nodeId: string): Promise;