/**
* FlowDrop Editor Module
*
* Provides the WorkflowEditor component and related functionality for
* building visual workflow editors. This module includes @xyflow/svelte
* and all node components.
*
* **Important: Single-instance only.** FlowDrop uses module-level singleton
* stores for state management. Only one FlowDrop editor instance per page
* is supported. This is a known architectural limitation.
*
* @module editor
*
* @example Mounting a standalone workflow editor:
* ```typescript
* import { mountFlowDropApp, WorkflowEditor } from "@flowdrop/flowdrop/editor";
* import "@flowdrop/flowdrop/styles";
*
* const app = await mountFlowDropApp(document.getElementById("editor"), {
* workflow: myWorkflow,
* nodes: availableNodes
* });
* ```
*
* @example Using WorkflowEditor in Svelte:
* ```svelte
*
*
*
* ```
*/
import '../registry/builtinNodes.js';
export { default as WorkflowEditor } from '../components/WorkflowEditor.svelte';
export { default as App } from '../components/App.svelte';
export { default as WorkflowNodeComponent } from '../components/nodes/WorkflowNode.svelte';
export { default as SimpleNode } from '../components/nodes/SimpleNode.svelte';
export { default as ToolNode } from '../components/nodes/ToolNode.svelte';
export { default as NotesNode } from '../components/nodes/NotesNode.svelte';
export { default as GatewayNode } from '../components/nodes/GatewayNode.svelte';
export { default as SquareNode } from '../components/nodes/SquareNode.svelte';
export { default as TerminalNode } from '../components/nodes/TerminalNode.svelte';
export { default as UniversalNode } from '../components/UniversalNode.svelte';
export { default as NodeSidebar } from '../components/NodeSidebar.svelte';
export { default as CanvasBanner } from '../components/CanvasBanner.svelte';
export { default as LoadingSpinner } from '../components/LoadingSpinner.svelte';
export { default as StatusIcon } from '../components/StatusIcon.svelte';
export { default as StatusLabel } from '../components/StatusLabel.svelte';
export { default as NodeStatusOverlay } from '../components/NodeStatusOverlay.svelte';
export { default as ConfigForm } from '../components/ConfigForm.svelte';
export { default as ConfigModal } from '../components/ConfigModal.svelte';
export { default as ConfigPanel } from '../components/ConfigPanel.svelte';
export { default as ReadOnlyDetails } from '../components/ReadOnlyDetails.svelte';
export { default as ConnectionLine } from '../components/ConnectionLine.svelte';
export { default as LogsSidebar } from '../components/LogsSidebar.svelte';
export { default as PipelineStatus } from '../components/PipelineStatus.svelte';
export { default as Navbar } from '../components/Navbar.svelte';
export { default as Logo } from '../components/Logo.svelte';
export { default as CommandConsole } from '../components/console/CommandConsole.svelte';
export { default as Playground } from '../components/playground/Playground.svelte';
export { default as PlaygroundModal } from '../components/playground/PlaygroundModal.svelte';
export { default as ChatPanel } from '../components/playground/ChatPanel.svelte';
export { default as SessionManager } from '../components/playground/SessionManager.svelte';
export { default as InputCollector } from '../components/playground/InputCollector.svelte';
export { default as ExecutionLogs } from '../components/playground/ExecutionLogs.svelte';
export { default as MessageBubble } from '../components/playground/MessageBubble.svelte';
export { mountWorkflowEditor, mountFlowDropApp, unmountFlowDropApp } from '../svelte-app.js';
export { nodeComponentRegistry, createNamespacedType, parseNamespacedType, BUILTIN_NODE_COMPONENTS, BUILTIN_NODE_TYPES, FLOWDROP_SOURCE, registerBuiltinNodes, areBuiltinsRegistered, isBuiltinType, getBuiltinTypes, resolveBuiltinAlias, registerFlowDropPlugin, unregisterFlowDropPlugin, registerCustomNode, createPlugin, isValidNamespace, getRegisteredPlugins, getPluginNodeCount } from '../registry/index.js';
export { EdgeStylingHelper, NodeOperationsHelper, WorkflowOperationsHelper, ConfigurationHelper } from '../helpers/workflowEditorHelper.js';
export { getWorkflowStore, workflowActions, getWorkflowId, getWorkflowName, getWorkflowNodes, getWorkflowEdges, getWorkflowMetadata, getWorkflowFormat, getWorkflowChanged, getWorkflowValidation, getWorkflowMetadataChanged, getConnectedHandles, getIsDirty, isDirty, markAsSaved, getEditVersion, getWorkflow as getWorkflowFromStore, setOnDirtyStateChange, setOnWorkflowChange, setHistoryEnabled, isHistoryEnabled, setRestoringFromHistory } from '../stores/workflowStore.svelte.js';
export { rebuildAllPortCoordinates, updateNodePortCoordinates, removeNodePortCoordinates, getPortCoordinate, getNodePortCoordinates, getPortCoordinateSnapshot, getPortCoordinates } from '../stores/portCoordinateStore.svelte.js';
export { getHistoryState, getCanUndo, getCanRedo, historyActions, setOnRestoreCallback, cleanupHistorySubscription, historyService, HistoryService } from '../stores/historyStore.svelte.js';
export type { HistoryEntry, HistoryState, PushOptions } from '../stores/historyStore.svelte.js';
export { setEndpointConfig, getEndpointConfig, nodeApi, workflowApi, api } from '../services/api.js';
export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
export { NodeExecutionService, nodeExecutionService } from '../services/nodeExecutionService.js';
export { PlaygroundService, playgroundService } from '../services/playgroundService.js';
export { getCurrentSession, getSessions, getMessages, getIsExecuting, getCanSendMessage, getIsLoading, getError as getPlaygroundError, getCurrentWorkflow, getLastPollSequenceNumber, getSessionStatus, getMessageCount, getChatMessages, getLogMessages, getLatestMessage, getInputFields, getHasChatInput, getSessionCount, playgroundActions, applyServerResponse, subscribeToSessionStatus, getCurrentSessionId, isSessionSelected, getMessagesSnapshot, getLatestSequenceNumber } from '../stores/playgroundStore.svelte.js';
export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from '../services/workflowStorage.js';
export { globalSaveWorkflow, globalExportWorkflow } from '../services/globalSave.js';
export { fetchPortConfig, validatePortConfig } from '../services/portConfigApi.js';
export { fetchCategories, validateCategories } from '../services/categoriesApi.js';
export { fetchDynamicSchema, resolveExternalEditUrl, getEffectiveConfigEditOptions, clearSchemaCache, invalidateSchemaCache, hasConfigEditOptions, shouldShowExternalEdit, shouldUseDynamicSchema } from '../services/dynamicSchemaService.js';
export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDraftMetadata, clearAllDrafts, DraftAutoSaveManager } from '../services/draftStorage.js';
export { EnhancedFlowDropApiClient, ApiError } from '../api/enhanced-client.js';
export { isLoopbackEdge, isValidLoopbackCycle, PortCompatibilityChecker, initializePortCompatibility, getPortCompatibilityChecker, getPossibleConnections, validateConnection, getConnectionSuggestions, hasCycles, hasInvalidCycles, getExecutionOrder } from '../utils/connections.js';
export { fetchRuntimeConfig, getRuntimeConfig, clearRuntimeConfigCache, initRuntimeConfig } from '../config/runtimeConfig.js';
export type { RuntimeConfig } from '../config/runtimeConfig.js';
export type { Workflow, WorkflowNode, WorkflowEdge, NodeMetadata, NodePort, DynamicPort, Branch, ExecutionStatus, ExecutionResult, FlowDropConfig, PortConfig, ConfigSchema, ConfigProperty, ConfigEditOptions } from '../types/index.js';
export type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig } from '../types/config.js';
export type { AuthProvider, StaticAuthConfig, CallbackAuthConfig } from '../types/auth.js';
export type { FlowDropEventHandlers, FlowDropFeatures, WorkflowChangeType } from '../types/events.js';
export type { EndpointConfig } from '../config/endpoints.js';
export type { UIAction } from '../commands/types.js';
export type { FlowDropMountOptions, MountedFlowDropApp, NavbarAction } from '../svelte-app.js';
export type { NodeComponentProps, NodeComponentRegistration, FlowDropPluginConfig, PluginNodeDefinition } from '../registry/index.js';