/**
 * @packageDocumentation
 *
 * # Flow Weaver Library
 *
 * A visual dataflow programming system for TypeScript. Workflows are defined via
 * JSDoc annotations in standard TypeScript files and can be parsed, validated,
 * and compiled to executable code.
 *
 * ## Core Concepts
 *
 * - **Workflow** (`TWorkflowAST`) - A graph of connected nodes with start/exit ports
 * - **NodeType** (`TNodeTypeAST`) - Template defining inputs, outputs, and behavior
 * - **NodeInstance** (`TNodeInstanceAST`) - A usage of a node type in a workflow
 * - **Port** (`TPortDefinition`) - Entry/exit point on a node (data or control flow)
 * - **Connection** (`TConnectionAST`) - Links ports between nodes
 *
 * ## File Format
 *
 * Any `.ts`, `.tsx`, `.js`, or `.jsx` file can contain workflows.
 *
 * ```typescript
 * // Define a node type
 * /**
 *  * @flowWeaver nodeType
 *  * @input a - First number
 *  * @input b - Second number
 *  * @output result - Sum
 *  *\/
 * function add(execute: boolean, a: number, b: number): { onSuccess: boolean; result: number } { ... }
 *
 * // Define a workflow
 * /**
 *  * @flowWeaver workflow
 *  * @node adder1 add
 *  * @connect Start.execute -> adder1.execute
 *  * @connect adder1.onSuccess -> Exit.onSuccess
 *  *\/
 * export function myWorkflow(execute: boolean, params: {...}): {...} { ... }
 * ```
 *
 * ## Main APIs
 *
 * - {@link parseWorkflow} - Parse a file to AST
 * - {@link validateWorkflow} - Validate workflow structure
 * - {@link generateCode} - Generate executable code from AST
 * - {@link compileWorkflow} - Parse + validate + generate in one step
 *
 * ## JSDoc Port Sync (Browser-compatible)
 *
 * For IDE integration, use the browser-compatible sync functions:
 * - {@link parsePortsFromFunctionText} - Extract ports from JSDoc
 * - {@link updatePortsInFunctionText} - Update ports in function text
 * - {@link formatPortsInFunctionText} - Format ports consistently
 *
 * @module @synergenius/flow-weaver
 */
export * from './api/index.js';
export { parser, resolveNpmNodeTypes } from './parser.js';
export type { TExternalNodeType } from './parser.js';
export { TagHandlerRegistry } from './parser/tag-registry.js';
export type { TTagHandlerFn, TTagHandlerContext } from './parser/tag-registry.js';
export { ValidationRuleRegistry } from './validation/rule-registry.js';
export type { TValidationRuleSet } from './validation/rule-registry.js';
export type { TConnectionAST, TNodeTypeAST, TNodeInstanceAST, TNodeInstanceConfig, TPortConfig, TWorkflowAST, TPortReference, TPortDefinition, TDataType, TExecuteWhen, TBranchingStrategy, TSerializableValue, TSerializableObject, TSerializableArray, TImportDeclaration, TImportSpecifier, TSourceLocation, TValidationError, TAnalysisResult, TControlFlowGraph, TControlFlowEdge, TBranchingNodeInfo, TBranchRegion, TMergeNodeInfo, TWorkflowMetadata, TNodeMetadata, TConnectionMetadata, TASTTransformer, TASTVisitor, TParseOptions, TValidationRule, TGenerateOptions, TCompileResult, TCompilationMetadata, TNodeTypeDefaultConfig, TNodeTypePort, TPortDirection, TNodeParent, TPullExecutionConfig, TWorkflowFileExtension, TPortPlacement, TPortUI, TNodeTypeUI, TNodeUI, TWorkFlowFunctionUI, TPortType, } from './ast/types.js';
export { WorkflowBuilder, NodeTypeBuilder, NodeInstanceBuilder, ConnectionBuilder, } from './ast/builder.js';
export { portRef, port, workflow, nodeType, nodeInstance } from './ast/builder.js';
export { GeneratedExecutionContext } from './runtime/ExecutionContext.js';
export type { TDebugger } from './runtime/events.js';
export type { TLocalFunctionNodeType } from './node-types-generator.js';
export { configureGeneratedBranding, getGeneratedBranding } from './generated-branding.js';
export type { GeneratedBranding } from './generated-branding.js';
export * from './type-mappings.js';
export * from './constants.js';
export { validator, WorkflowValidator } from './validator.js';
export { getFriendlyError, formatFriendlyDiagnostics } from './friendly-errors.js';
export type { TFriendlyError } from './friendly-errors.js';
export { generator, WorkflowGenerator } from './generator.js';
export { AnnotationGenerator } from './annotation-generator.js';
export type { GenerateAnnotationsOptions } from './annotation-generator.js';
export * as GeneratorUtils from './generator.js';
export { parsePortsFromFunctionText, updatePortsInFunctionText, formatPortsInFunctionText, syncCodeRenames, renamePortInCode, parseReturnTypeFields, parseFunctionSignature, parseReturnFields, } from './jsdoc-port-sync/index.js';
export { workflowTemplates, nodeTemplates, getWorkflowTemplate, getNodeTemplate, toCamelCase, toPascalCase, } from './cli/templates/index.js';
export type { WorkflowTemplate, NodeTemplate, WorkflowTemplateOptions } from './cli/templates/index.js';
export { WorkflowDiffer } from './diff/WorkflowDiffer.js';
export { formatDiff, type TDiffFormat } from './diff/formatDiff.js';
export { IMPACT_DESCRIPTIONS, IMPACT_COLORS, getImpactReasons, hasBreakingChanges, getNodeTypeChanges, getCriticalConnections, } from './diff/impact.js';
export type { TWorkflowDiff, TNodeTypeDiff, TInstanceDiff, TConnectionDiff, TWorkflowPortsDiff, TScopeDiff, TPortChange, TImpactLevel, TChangeType, TChange, TInstanceConfigChange, TPortRef, } from './diff/types.js';
//# sourceMappingURL=index.d.ts.map