import { Klass, LexicalNode } from 'lexical';
import { RichRendererModule } from './types';
/**
 * Merge preset and modules, deduplicating by:
 *   1. Same module reference → skip silently (idempotent)
 *   2. Same module.name → replace previous module entirely; warn in dev
 *   3. Else → append
 */
export declare function mergeModules<M extends RichRendererModule>(preset: M[] | undefined, modules: M[] | undefined): M[];
/**
 * Dedup by class reference. When two Klasses share the same `getType()`,
 * a subclass relationship (edit Klass extends base Klass) auto-resolves:
 * the subclass replaces its parent. Unrelated collisions throw — `instanceof`
 * would break across module boundaries.
 */
export declare function dedupNodes(nodes: Klass<LexicalNode>[]): Klass<LexicalNode>[];
//# sourceMappingURL=dedup.d.ts.map