import { type NodeConfigSubject } from './subject-fields.js'; export { scopeForCwd, profileNameFor } from './subject-fields.js'; export type { NodeConfigSubject } from './subject-fields.js'; /** Spine distance from `nodeId` up to its root orchestrator: count the hops * walking the `parent` chain (canvas-db rows) until a row with no parent (the * root). The root is depth 0. Cycle-guarded (parents must not cycle, but never * loop forever) — mirrors `rootOfSpine` in runtime/placement.ts. */ export declare function spineDepth(nodeId: string): number; /** Assemble the node-config subject for `nodeId` from its `NodeMeta` + the * derived fields. Returns `null` when the node has no canvas-db row (an * unknown id). Pure aside from the canvas-db + profile-manifest reads. */ export declare function assembleNodeSubject(nodeId: string): NodeConfigSubject | null;