/** * WorkGraph scaffold validation — dry-run validator for saga/epic/task scaffold proposals. * * Validates YAML/JSON scaffold payloads before they are applied to storage. * Runs hierarchy, structural, and edge-reference checks and returns structured * diagnostics that consumers can use to preview and gate scaffold mutations. * * @task T10632 * @saga T10538 * @epic T10547 */ import type { WorkGraphScaffoldValidateParams, WorkGraphScaffoldValidateResult } from '@cleocode/contracts'; /** Stable error code for scaffold nodes with missing or empty IDs. */ export declare const E_WORKGRAPH_SCAFFOLD_MISSING_ID = "E_WORKGRAPH_SCAFFOLD_MISSING_ID"; /** Stable error code for scaffold nodes with an invalid type. */ export declare const E_WORKGRAPH_SCAFFOLD_INVALID_TYPE = "E_WORKGRAPH_SCAFFOLD_INVALID_TYPE"; /** Stable error code for edge endpoints that don't reference any scaffold node. */ export declare const E_WORKGRAPH_SCAFFOLD_MISSING_ENDPOINT = "E_WORKGRAPH_SCAFFOLD_MISSING_ENDPOINT"; /** Stable error code for edges that connect a node to itself. */ export declare const E_WORKGRAPH_SCAFFOLD_SELF_LOOP = "E_WORKGRAPH_SCAFFOLD_SELF_LOOP"; /** Stable error code for duplicate node IDs within a single scaffold payload. */ export declare const E_WORKGRAPH_SCAFFOLD_DUPLICATE_ID = "E_WORKGRAPH_SCAFFOLD_DUPLICATE_ID"; /** Stable error code for invalid edge kind values. */ export declare const E_WORKGRAPH_SCAFFOLD_INVALID_EDGE_KIND = "E_WORKGRAPH_SCAFFOLD_INVALID_EDGE_KIND"; /** Stable error code for edge/edge fanout exceeding the configured limit. */ export declare const E_WORKGRAPH_SCAFFOLD_FANOUT_EXCEEDED = "E_WORKGRAPH_SCAFFOLD_FANOUT_EXCEEDED"; /** * Options for scaffold validation beyond the standard params. */ export interface WorkGraphScaffoldValidateOptions { /** Maximum allowed direct children per parent. Defaults to unlimited. */ readonly maxFanout?: number; } /** * Validate a WorkGraph scaffold proposal before applying it to storage. * * Checks: * - Every node has a non-empty ID and a valid type (saga|epic|task|subtask) * - No duplicate node IDs in the payload * - Hierarchy parent/type matrix via {@link validateWorkGraphHierarchy} * - Edge endpoints reference existing scaffold nodes * - No self-loops in edge definitions * - Edge kinds are valid WorkGraph relation kinds * - Optional fanout limits on direct children per parent * * When `dryRun` is `true` (the default), the validator runs in preview mode * that echoes the flag back to callers so they can share validate/apply plumbing. * * @param params - Scaffold payload to validate. * @param options - Optional validation tuning (maxFanout). * @returns Structured validation result with validity flag, issues, and hierarchy diagnostics. */ export declare function validateWorkGraphScaffold(params: WorkGraphScaffoldValidateParams, options?: WorkGraphScaffoldValidateOptions): WorkGraphScaffoldValidateResult; //# sourceMappingURL=scaffold-validate.d.ts.map