/** * Workflow graph store (RD §2, §4 — slice 4.0.8 presence-lease-graph). * * Safe-path, locked, atomic graph persistence. Reads fail closed on * malformed JSON / schema violation / cycle / unknown node id. Writes * use a tmp+rename primitive to guarantee no half-written graph on * crash. The store never inspects vendor env vars and never falls * back to a legacy marker when the canonical graph is unreadable — * canonical corruption is surfaced with `PEAKS_GRAPH_CORRUPTED`. */ import { type WorkflowGraph, type WorkflowId } from './workflow-graph-types.js'; export { PEAKS_GRAPH_NOT_FOUND, PEAKS_GRAPH_CORRUPTED, PEAKS_GRAPH_CYCLE, PEAKS_GRAPH_REF_BROKEN, PEAKS_GRAPH_NODE_REQUIRED, PEAKS_GRAPH_NODE_NOT_PREPARED, PEAKS_GRAPH_NODE_KIND_INVALID, PEAKS_NODE_EXISTS, PEAKS_NODE_TRANSITION_INVALID, PEAKS_ENVELOPE_NOT_RECEIVED, PEAKS_ENVELOPE_GRAPH_MISMATCH, PEAKS_TERMINAL_REASON_INVALID, PEAKS_TERMINALIZE_ATOMICITY_FAILED, PEAKS_UNCONSUMED_ENVELOPE, PEAKS_DEPENDENCY_NOT_CONSUMED, PEAKS_WORKFLOW_OWNS_PRESENCE_CLEAR, PEAKS_SESSION_NOT_BOUND, PEAKS_CALLER_NOT_RESOLVED, graphPathFor, emptyGraph } from './workflow-graph-store-helpers.js'; export type { GraphStoreError } from './workflow-graph-store-helpers.js'; /** Validate a graph shape; throw `PEAKS_GRAPH_CORRUPTED` on any violation. */ export declare function validateGraph(graph: unknown): WorkflowGraph; /** Read a graph from disk; never falls back to legacy. */ export declare function readGraph(input: { projectRoot?: string; sessionId?: string; graphRef?: string; workflowId?: WorkflowId; /** Absolute path to a graph file. When supplied, projectRoot/sessionId/graphRef are not required. */ graphPath?: string; }): WorkflowGraph; /** Write a graph atomically (creates dirs as needed). */ export declare function writeGraph(input: { projectRoot: string; sessionId: string; graphRef: string; workflowId: WorkflowId; graph: WorkflowGraph; holder?: string; }): { path: string; }; /** Validate a `graphRef` is well-formed without writing. */ export declare function validateGraphRef(input: { graphRef: string; workflowId: WorkflowId; projectRoot: string; sessionId: string; }): { path: string; };