import type { ProcessFlowEdge, ProcessFlowNode, ProcessFlowTool, ProcessSemanticEntryRefKey, ProcessTurnTransition, ProcessTurnType, SerializedProcessGraph, TurnId } from "@leitwerk-dev/domain"; import type { ExtensionProcessDefinition } from "./extension-api.js"; /** @internal */ export type ProcessGraphSource = ExtensionProcessDefinition; /** @internal */ export type ProcessGraphRegistry = ReadonlyMap; /** @internal */ export interface ProcessGraphTurnView { /** @internal */ turnType: ProcessTurnType; /** @internal */ description: string; /** Definition-only display metadata; never evaluates turn callbacks. @internal */ repetition?: ProcessFlowNode["repetition"]; /** @internal */ tools?: ProcessFlowTool[]; /** @internal */ hasDynamicTools?: boolean; /** @internal */ transitions: readonly (ProcessTurnTransition & Pick)[]; /** Display labels for external triggers; durable route identities remain unchanged. @internal */ transitionLabels?: Readonly>; /** @internal */ reviewProduct?: string; /** @internal */ resultSemanticRef?: ProcessSemanticEntryRefKey; /** @internal */ publishedProduct?: string; /** @internal */ publishedProducts?: readonly string[]; /** @internal */ consumedProducts?: readonly string[]; /** @internal */ optionalConsumedProducts?: readonly string[]; /** @internal */ requiredSemanticMarkdownRefs?: readonly ProcessSemanticEntryRefKey[]; /** @internal */ optionalSemanticMarkdownRefs?: readonly ProcessSemanticEntryRefKey[]; /** @internal */ turnResultMarkdownRequired?: boolean; } /** @internal */ export interface ProcessGraphView { /** @internal */ id: string; /** @internal */ primaryEntryTurnId: TurnId; /** @internal */ entryTurnIds: ReadonlySet; /** @internal */ happyPath: readonly TurnId[] | null; /** @internal */ turns: ReadonlyMap; } /** * Runtime adapter from an extension process definition to the internal graph view. * All server lifecycle, validation, model-selection and serialization code should use this view * instead of maintaining a second graph representation. */ /** @internal */ export declare function toProcessGraphView(definition: ProcessGraphSource): ProcessGraphView; /** @internal */ export declare function hasProcessGraph(registry: ProcessGraphRegistry, processId: string): boolean; /** @internal */ export declare function getProcessGraph(registry: ProcessGraphRegistry, processId: string): ProcessGraphView; /** @internal */ export declare function getAllProcessGraphs(registry: ProcessGraphRegistry): readonly ProcessGraphView[]; /** @internal */ export declare function getProcessTurnGraph(registry: ProcessGraphRegistry, processId: string, turnId: TurnId): ProcessGraphTurnView | undefined; /** @internal */ export declare function getTurnTransitionsForProcessGraph(registry: ProcessGraphRegistry, processId: string, turnId: TurnId): readonly ProcessTurnTransition[]; /** @internal */ export declare function getReachableTurnIdsForProcessGraph(registry: ProcessGraphRegistry, processId: string): readonly TurnId[]; /** @internal */ export declare function isTurnAvailableForProcessGraph(registry: ProcessGraphRegistry, processId: string, turnId: TurnId): boolean; /** @internal */ export declare function serializeProcessGraph(registry: ProcessGraphRegistry, processId: string): SerializedProcessGraph; /** @internal */ export declare function listLlmTurnIdsForProcessGraph(registry: ProcessGraphRegistry, processId: string): readonly TurnId[]; /** @internal */ export declare function validateProcessGraphProducts(graph: ProcessGraphView): readonly string[]; /** @internal */ export declare function validateProcessGraphTurnTransitions(graph: ProcessGraphView): readonly string[]; //# sourceMappingURL=process-graph.d.ts.map