import type { Klass, LexicalNode } from 'lexical';
import type { EditorPresetType, PluginConfig } from './types';
/**
 * Compute the list of Lexical node classes required for the given plugin configuration.
 * Each plugin maps to specific node types that must be registered with createEditor().
 *
 * Note: Node classes are imported statically (not lazily) because they are needed during
 * editor initialization. These are small registration classes, not the full plugin logic.
 *
 * Common content nodes (HeadingNode, QuoteNode, ListNode, ListItemNode, LinkNode,
 * CodeNode, CodeHighlightNode) are always registered so that content in any format
 * (markdown, HTML, JSON) can be parsed and displayed correctly, even when the
 * corresponding editing plugins are not enabled.
 *
 * @param config - The plugin configuration object
 * @returns Array of Lexical node classes to register
 */
export declare function getNodesForPlugins(config: PluginConfig): Array<Klass<LexicalNode>>;
/**
 * Get the default plugin configuration for a given editor preset.
 *
 * - **bare**: Minimal (richText + history + clipboard)
 * - **docked**: Batteries-included (richText + history + clipboard + list + link + autoLink + code + table)
 * - **contextual**: Same as docked (block handle is managed by the component, not a plugin)
 *
 * @param preset - The editor preset type
 * @returns Default plugin configuration for the preset
 */
export declare function createDefaultPluginConfig(preset: EditorPresetType): PluginConfig;
