import { NodeEditorData } from './types/core'; import { I18nMessages, I18nDictionaries, Locale } from './i18n/types'; import { SettingsManager } from './settings/SettingsManager'; import { ExternalDataReference, NodeDefinition } from './types/NodeDefinition'; import { FallbackDefinition } from './types/NodeDefinitionRegistry'; import { NodeEditorRendererOverrides } from './types/renderers'; import { NodeEditorInteractionSettingsPatch } from './types/interaction'; import { PortPositionBehavior } from './types/portPosition'; import { ConnectionBehavior } from './types/connectionBehavior'; /** * @file NodeEditorCore - Core provider setup without layout dependencies * @description * This component sets up all necessary contexts and providers for the node editor * without depending on any specific layout system (like GridLayout). * Use this when you want to provide your own layout while using the core editor functionality. */ import * as React from "react"; export type NodeEditorCoreProps = { /** Initial data for uncontrolled mode (like defaultValue) */ initialData?: Partial; /** Data for controlled mode (like value) */ data?: NodeEditorData; onDataChange?: (data: NodeEditorData) => void; onSave?: (data: NodeEditorData) => void | Promise; onLoad?: () => NodeEditorData | Promise; /** Custom node definitions */ nodeDefinitions?: NodeDefinition[]; /** Whether to include default node definitions */ includeDefaultDefinitions?: boolean; /** * Fallback definition for unknown node types. * - `true`: Use the default error node definition factory * - `false` or `undefined`: No fallback (returns undefined for unknown types) * - `NodeDefinition`: Use a fixed definition for all unknown types * - `(type: string) => NodeDefinition`: Use a factory function */ fallbackDefinition?: FallbackDefinition | boolean; /** External data references for nodes */ externalDataRefs?: Record; /** Settings manager instance */ settingsManager?: SettingsManager; locale?: Locale; fallbackLocale?: Locale; messagesOverride?: Partial>>; /** Additional locale dictionaries to make available beyond the default English bundle */ localeDictionaries?: I18nDictionaries; /** Override: enable/disable auto-save regardless of settings */ autoSaveEnabled?: boolean; /** Override: auto-save interval in seconds */ autoSaveInterval?: number; /** Maximum number of history entries to keep */ historyMaxEntries?: number; /** Renderer overrides for core editor visuals */ renderers?: NodeEditorRendererOverrides; /** Overrides for canvas interaction behavior (pan, pinch zoom, context menu) */ interactionSettings?: NodeEditorInteractionSettingsPatch; /** Custom behavior for port position calculation */ portPositionBehavior?: PortPositionBehavior; /** Customizable connection path calculation behavior */ connectionBehavior?: Partial; /** Children to render within all providers */ children: React.ReactNode; }; /** * NodeEditorCore - Sets up all necessary contexts and providers * without any layout system dependencies. * * Use this component when you want to build your own panel/layout system * while still leveraging all the core node editor functionality. */ export declare function NodeEditorCore({ initialData, data, onDataChange, onSave, onLoad, nodeDefinitions, includeDefaultDefinitions, fallbackDefinition, externalDataRefs, settingsManager, locale, fallbackLocale, messagesOverride, localeDictionaries, autoSaveEnabled, autoSaveInterval, historyMaxEntries, renderers, interactionSettings, portPositionBehavior, connectionBehavior, children, }: NodeEditorCoreProps): import("react/jsx-runtime").JSX.Element;