import { type NodeMeta } from '../canvas/index.js'; export interface PromoteResult { meta: NodeMeta; roadmapWritten: boolean; /** Absolute path to the node's roadmap doc (context/roadmap.md). */ roadmapPath: string; /** Absolute path to the node's goal doc (context/initial-prompt.md). */ goalPath: string; } /** Promote a node to an orchestrator (mode→orchestrator), optionally * specializing its kind (e.g. a `general` worker becoming a * `developer.orchestrator`) and optionally also making it resident. Idempotent: * re-promoting just rewrites the spec. Seeds a roadmap SCAFFOLD if absent (a * boss with no map is a failure mode) — no goal is forced here; authoring the * goal + roadmap is the node's next act. The transition guidance is injected * centrally by the persona injector at the next turn boundary, not returned. */ export declare function promote(nodeId: string, opts?: { kind?: string; resident?: boolean; model?: string; }): PromoteResult; export interface YieldResult { meta: NodeMeta; /** True iff `promote:true` was passed — a plain yield never flips mode. */ promoted: boolean; /** Always true on success — the node will refresh-revive on its next stop. */ willRefresh: boolean; } /** Request a refresh-yield: discard in-memory context and revive fresh, mode * and lifecycle UNCHANGED, against the roadmap if one exists else the * original goal (`buildReviveKickoff` falls back to it). A plain yield is * always mode-preserving — a base node comes back base, still working the * same task hands-on. Pass `promote:true` to ALSO become an orchestrator in * the same refresh (the one-step form of yield + promote), which rides the * same path `crtr node promote` would — mode flips to orchestrator and a * roadmap scaffold is seeded. Sets intent='refresh'; the stophook shuts the * process down on the next stop and the daemon revives it fresh. */ export declare function requestYield(nodeId: string, opts?: { kind?: string; model?: string; promote?: boolean; }, deps?: { ensure?: () => void; }): YieldResult;