import type { IconKey } from '../core/Icon';
import type { RefObject, ReactNode, ComponentType } from 'react';
import type { Options } from 'mdast-util-to-markdown';
import type { Config } from 'mdast-util-from-markdown/lib';
import type { Extension } from 'micromark-util-types';
import type { Content } from 'mdast';
import type { MdastImportVisitor, LexicalVisitor } from '../..';
import type { EditorSubscription, EditorInFocus, BlockType } from '../core';
import type { InitialEditorStateType } from '@lexical/react/LexicalComposer';
import type { JsxComponentDescriptor } from '../jsx';
import type { HistoryState } from '@lexical/history';
import type { LexicalEditor, RangeSelection, Klass, LexicalNode, TextFormatType, ElementNode, DecoratorNode } from 'lexical';
import type { SystemSpec, Realm, RealmNode, PluginConstructor, TypedRealm, ValueForKey, SystemKeys, ValuesForKeys, SystemDict } from '../../gurx';
///
/** @internal */
export declare const thematicBreakSystem: SystemSpec<[SystemSpec<[], (r: Realm) => {
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode;
jsxIsAvailable: RealmNode;
jsxComponentDescriptors: RealmNode;
initialRootEditorState: RealmNode;
rootEditor: RealmNode;
createRootEditorSubscription: RealmNode;
createActiveEditorSubscription: RealmNode;
importVisitors: RealmNode[]>;
syntaxExtensions: RealmNode;
mdastExtensions: RealmNode<(Partial | Partial[])[] | null | undefined>;
usedLexicalNodes: RealmNode[]>;
addImportVisitor: RealmNode>;
addLexicalNode: RealmNode>;
addSyntaxExtension: RealmNode;
addMdastExtension: RealmNode | Partial[]>;
toMarkdownExtensions: RealmNode;
toMarkdownOptions: RealmNode;
addToMarkdownExtension: RealmNode;
addExportVisitor: RealmNode;
exportVisitors: RealmNode;
initialMarkdown: RealmNode;
setMarkdown: RealmNode;
markdown: RealmNode;
markdownSignal: RealmNode;
editorRootElementRef: RealmNode | null>;
contentEditableClassName: RealmNode;
placeholder: RealmNode;
autoFocus: RealmNode;
readOnly: RealmNode;
composerChildren: RealmNode[]>;
addComposerChild: RealmNode>;
topAreaChildren: RealmNode[]>;
addTopAreaChild: RealmNode>;
nestedEditorChildren: RealmNode[]>;
addNestedEditorChild: RealmNode>;
editorWrappers: RealmNode[]>;
addEditorWrapper: RealmNode>;
currentFormat: RealmNode;
editorInFocus: RealmNode;
applyFormat: RealmNode;
currentBlockType: RealmNode;
applyBlockType: RealmNode;
convertSelectionToNode: RealmNode<() => ElementNode>;
insertDecoratorNode: RealmNode<() => DecoratorNode>;
onBlur: RealmNode;
iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
markdownProcessingError: RealmNode<{
error: string;
source: string;
} | null>;
markdownErrorSignal: RealmNode<{
error: string;
source: string;
}>;
}>], (r: Realm, [{ activeEditor }]: [{
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode;
jsxIsAvailable: RealmNode;
jsxComponentDescriptors: RealmNode;
initialRootEditorState: RealmNode;
rootEditor: RealmNode;
createRootEditorSubscription: RealmNode;
createActiveEditorSubscription: RealmNode;
importVisitors: RealmNode[]>;
syntaxExtensions: RealmNode;
mdastExtensions: RealmNode<(Partial | Partial[])[] | null | undefined>;
usedLexicalNodes: RealmNode[]>;
addImportVisitor: RealmNode>;
addLexicalNode: RealmNode>;
addSyntaxExtension: RealmNode;
addMdastExtension: RealmNode | Partial[]>;
toMarkdownExtensions: RealmNode;
toMarkdownOptions: RealmNode;
addToMarkdownExtension: RealmNode;
addExportVisitor: RealmNode;
exportVisitors: RealmNode;
initialMarkdown: RealmNode;
setMarkdown: RealmNode;
markdown: RealmNode;
markdownSignal: RealmNode;
editorRootElementRef: RealmNode | null>;
contentEditableClassName: RealmNode;
placeholder: RealmNode;
autoFocus: RealmNode;
readOnly: RealmNode;
composerChildren: RealmNode[]>;
addComposerChild: RealmNode>;
topAreaChildren: RealmNode[]>;
addTopAreaChild: RealmNode>;
nestedEditorChildren: RealmNode[]>;
addNestedEditorChild: RealmNode>;
editorWrappers: RealmNode[]>;
addEditorWrapper: RealmNode>;
currentFormat: RealmNode;
editorInFocus: RealmNode;
applyFormat: RealmNode;
currentBlockType: RealmNode;
applyBlockType: RealmNode;
convertSelectionToNode: RealmNode<() => ElementNode>;
insertDecoratorNode: RealmNode<() => DecoratorNode>;
onBlur: RealmNode;
iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
markdownProcessingError: RealmNode<{
error: string;
source: string;
} | null>;
markdownErrorSignal: RealmNode<{
error: string;
source: string;
}>;
}]) => {
insertThematicBreak: RealmNode;
}>;
export declare const
/** @internal */
thematicBreakPlugin: PluginConstructor {
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode;
jsxIsAvailable: RealmNode;
jsxComponentDescriptors: RealmNode;
initialRootEditorState: RealmNode;
rootEditor: RealmNode;
createRootEditorSubscription: RealmNode;
createActiveEditorSubscription: RealmNode;
importVisitors: RealmNode[]>;
syntaxExtensions: RealmNode;
mdastExtensions: RealmNode<(Partial | Partial[])[] | null | undefined>;
usedLexicalNodes: RealmNode[]>;
addImportVisitor: RealmNode>;
addLexicalNode: RealmNode>;
addSyntaxExtension: RealmNode;
addMdastExtension: RealmNode | Partial[]>;
toMarkdownExtensions: RealmNode;
toMarkdownOptions: RealmNode;
addToMarkdownExtension: RealmNode;
addExportVisitor: RealmNode;
exportVisitors: RealmNode;
initialMarkdown: RealmNode;
setMarkdown: RealmNode;
markdown: RealmNode;
markdownSignal: RealmNode;
editorRootElementRef: RealmNode | null>;
contentEditableClassName: RealmNode;
placeholder: RealmNode;
autoFocus: RealmNode;
readOnly: RealmNode;
composerChildren: RealmNode[]>;
addComposerChild: RealmNode>;
topAreaChildren: RealmNode[]>;
addTopAreaChild: RealmNode>;
nestedEditorChildren: RealmNode[]>;
addNestedEditorChild: RealmNode>;
editorWrappers: RealmNode[]>;
addEditorWrapper: RealmNode>;
currentFormat: RealmNode;
editorInFocus: RealmNode;
applyFormat: RealmNode;
currentBlockType: RealmNode;
applyBlockType: RealmNode;
convertSelectionToNode: RealmNode<() => ElementNode>;
insertDecoratorNode: RealmNode<() => DecoratorNode>;
onBlur: RealmNode;
iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
markdownProcessingError: RealmNode<{
error: string;
source: string;
} | null>;
markdownErrorSignal: RealmNode<{
error: string;
source: string;
}>;
}>], (r: Realm, [{ activeEditor }]: [{
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode;
jsxIsAvailable: RealmNode;
jsxComponentDescriptors: RealmNode;
initialRootEditorState: RealmNode;
rootEditor: RealmNode;
createRootEditorSubscription: RealmNode;
createActiveEditorSubscription: RealmNode;
importVisitors: RealmNode[]>;
syntaxExtensions: RealmNode;
mdastExtensions: RealmNode<(Partial | Partial[])[] | null | undefined>;
usedLexicalNodes: RealmNode[]>;
addImportVisitor: RealmNode>;
addLexicalNode: RealmNode>;
addSyntaxExtension: RealmNode;
addMdastExtension: RealmNode | Partial[]>;
toMarkdownExtensions: RealmNode;
toMarkdownOptions: RealmNode;
addToMarkdownExtension: RealmNode;
addExportVisitor: RealmNode;
exportVisitors: RealmNode;
initialMarkdown: RealmNode;
setMarkdown: RealmNode;
markdown: RealmNode;
markdownSignal: RealmNode;
editorRootElementRef: RealmNode | null>;
contentEditableClassName: RealmNode;
placeholder: RealmNode;
autoFocus: RealmNode;
readOnly: RealmNode;
composerChildren: RealmNode[]>;
addComposerChild: RealmNode>;
topAreaChildren: RealmNode[]>;
addTopAreaChild: RealmNode>;
nestedEditorChildren: RealmNode[]>;
addNestedEditorChild: RealmNode>;
editorWrappers: RealmNode[]>;
addEditorWrapper: RealmNode>;
currentFormat: RealmNode;
editorInFocus: RealmNode;
applyFormat: RealmNode;
currentBlockType: RealmNode;
applyBlockType: RealmNode;
convertSelectionToNode: RealmNode<() => ElementNode>;
insertDecoratorNode: RealmNode<() => DecoratorNode>;
onBlur: RealmNode;
iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
markdownProcessingError: RealmNode<{
error: string;
source: string;
} | null>;
markdownErrorSignal: RealmNode<{
error: string;
source: string;
}>;
}]) => {
insertThematicBreak: RealmNode;
}>, object>,
/** @internal */
thematicBreakPluginHooks: {
useRealmContext: () => TypedRealm<{
insertThematicBreak: RealmNode;
} & {
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode;
jsxIsAvailable: RealmNode;
jsxComponentDescriptors: RealmNode;
initialRootEditorState: RealmNode;
rootEditor: RealmNode;
createRootEditorSubscription: RealmNode;
createActiveEditorSubscription: RealmNode;
importVisitors: RealmNode[]>;
syntaxExtensions: RealmNode;
mdastExtensions: RealmNode<(Partial | Partial[])[] | null | undefined>;
usedLexicalNodes: RealmNode[]>;
addImportVisitor: RealmNode>;
addLexicalNode: RealmNode>;
addSyntaxExtension: RealmNode;
addMdastExtension: RealmNode | Partial[]>;
toMarkdownExtensions: RealmNode;
toMarkdownOptions: RealmNode;
addToMarkdownExtension: RealmNode;
addExportVisitor: RealmNode;
exportVisitors: RealmNode;
initialMarkdown: RealmNode;
setMarkdown: RealmNode;
markdown: RealmNode;
markdownSignal: RealmNode;
editorRootElementRef: RealmNode | null>;
contentEditableClassName: RealmNode;
placeholder: RealmNode;
autoFocus: RealmNode;
readOnly: RealmNode;
composerChildren: RealmNode[]>;
addComposerChild: RealmNode>;
topAreaChildren: RealmNode[]>;
addTopAreaChild: RealmNode>;
nestedEditorChildren: RealmNode[]>;
addNestedEditorChild: RealmNode>;
editorWrappers: RealmNode[]>;
addEditorWrapper: RealmNode>;
currentFormat: RealmNode;
editorInFocus: RealmNode;
applyFormat: RealmNode;
currentBlockType: RealmNode;
applyBlockType: RealmNode;
convertSelectionToNode: RealmNode<() => ElementNode>;
insertDecoratorNode: RealmNode<() => DecoratorNode>;
onBlur: RealmNode;
iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
markdownProcessingError: RealmNode<{
error: string;
source: string;
} | null>;
markdownErrorSignal: RealmNode<{
error: string;
source: string;
}>;
}>;
useEmitter: (key: K, callback: (value: ValueForKey<{
insertThematicBreak: RealmNode;
} & {
activeEditor: RealmNode;
inFocus: RealmNode;
historyState: RealmNode;
currentSelection: RealmNode